Pythonでプログラムを書く際に、時間を扱いたいシーンは多く存在します。処理を一定時間止めたり、現在の時刻を表示したり、経過時間を測定するなど、日常的なプログラミングでも時間操作は重要です。この記事では、Python標準ライブラリのひとつである「timeモジュール」を使って、時間を扱う方法を初心者にもわかりやすく解説します。子どもから大人まで、プログラミングに触れるすべての人に向けた丁寧な内容を心がけています。
timeモジュールとは?Pythonで時間を扱う基本のライブラリ
Pythonには時間を扱うための便利なモジュールがいくつかありますが、その中でもtimeモジュールはもっとも基本的なライブラリです。インストール不要で、Pythonに標準で含まれており、すぐに使うことができます。
モジュールとは、特定の機能をまとめたファイル(またはその集合)で、Pythonでは「import」文を使って読み込むことができます。timeモジュールを使うことで、現在時刻の取得、プログラムの一時停止、経過時間の測定など、様々な時間操作が可能になります。
import time
この1行で、timeモジュールが使えるようになります。
time.sleep()で処理を一時停止する方法
Pythonのtimeモジュールで最もよく使われる関数のひとつが time.sleep()
です。これは「プログラムを指定した秒数だけ止める」ために使います。たとえば、ゲームやアニメーション、センサーの読み取りなどで時間待ちを入れたい場合に便利です。
import time
print("5秒待ってからメッセージを表示します")
time.sleep(5)
print("5秒経過しました")
このコードでは、time.sleep(5)
によって処理が5秒間止まり、その後にメッセージが表示されます。
現在時刻を取得するtime.time()とtime.localtime()
現在の時間を取得したい場合には、time.time()
や time.localtime()
を使います。
time.time():エポック秒の取得
time.time()
は、1970年1月1日(UNIXエポック)からの経過秒数を浮動小数点数(小数を含む数)で返します。
import time
now = time.time()
print(now)
これは内部的な時刻の基準として使われますが、人間には読みにくい形式です。
time.localtime():ローカル時間の取得
time.localtime()
は、ローカルの現在時刻を「struct_time(ストラクトタイム)」という形式で返します。これは年、月、日、時、分、秒などが分かれたデータ構造です。
import time
local_time = time.localtime()
print(local_time)
これにより、tm_year
(年)や tm_hour
(時)などの情報にアクセスできます。
時間を見やすく整形するtime.strftime()
人間が読める形式で時刻を表示したい場合には、time.strftime()
を使ってフォーマットすることができます。
import time
now = time.localtime()
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", now)
print("現在の時刻:", formatted_time)
このように、%Y
は西暦4桁、%m
は月、%d
は日、%H
は時(24時間制)、%M
は分、%S
は秒を表します。覚えておくと他の言語でも役立つフォーマット指定子です。
経過時間を測るtime.perf_counter()
ある処理にどれくらいの時間がかかったかを測定するには、time.perf_counter()
が最も正確で便利です。
import time
start = time.perf_counter()
time.sleep(2) # 2秒待機
end = time.perf_counter()
print("処理にかかった時間:", end - start, "秒")
perf_counter()
は高精度な内部時計を使っており、ミリ秒単位の精度で経過時間を測ることができます。ベンチマークやパフォーマンスチェックに最適です。
他の便利な関数:time.ctime()とtime.gmtime()
timeモジュールには、他にも手軽に現在時刻を取得したり、グリニッジ標準時(UTC)での時刻を扱うための便利な関数があります。ここではその代表的な例として、time.ctime()
と time.gmtime()
を紹介します。
time.ctime()
現在のローカル時刻を文字列で簡単に取得できます。
import time
print(time.ctime())
time.gmtime()
localtime()
がローカル時間(日本などのタイムゾーン)を返すのに対して、gmtime()
はUTC(協定世界時)を返します。
import time
print(time.gmtime())
時差を考慮しないシステム的な処理には、gmtime()
を使うのが一般的です。
timeモジュールを使う上での注意点
time.sleep()
は指定秒数より多少長くなることがあるため、正確なタイミング制御には向きません。- 時間を扱う処理は、OSや環境によってわずかに挙動が変わることがあります。
- ローカル時間とUTCを混同しないように注意が必要です。
Pythonで時間を扱うならまずはtimeモジュールから
Pythonで時間を扱う際に、timeモジュールは最初に学ぶべき基本的なライブラリです。時間の取得、整形、待機、経過時間の測定など、日常的なプログラミングタスクに幅広く対応できます。
このモジュールの使い方をマスターすることで、ゲーム、IoT、Web開発、データ処理など、さまざまな分野でのプログラミングに応用が可能になります。
今後さらに複雑な日時処理をしたい場合は、datetime
モジュールや calendar
モジュールなども検討してみると良いでしょう。