Python: ファイルの更新日時(タイムスタンプ)を取得する
Pythonでファイルの更新日時(タイムスタンプ)を取得する場合は、 os.path.getmtime()を使用します。 作成日時を取得する場合はos.path.getctime()を使います。 それぞれ get と time の間に m と c が付くので注意してください。
| 関数 | 概要 |
|---|---|
| getmtime | 更新日時 |
| getctime | 作成日時 |
どちらの関数もUNIX Timestampを返します。
import os.path
# ファイルの更新日時
ts = os.path.getmtime("a.txt")
print(ts) # 1657734360.18843
print(type(ts)) # <class 'float'>
取得した値(UNIX Timestamp)を見やすい形式にするには、 datetime型かstr型に変換する必要があります。 datetime型に変換するには datetime.datetime.fromtimestamp()を使用し、 str型に変換する場合は、 datetimeオブジェクトのstrftime()を使用します。
次のサンプルコードでは、 「os.path.getmtime()」でファイルのタイムスタンプを取得し、 その値をdatetime型、文字列型に変換しています。 type()関数を使って型の確認もしています。
import os.path
import datetime
file_path = "a.txt"
# ファイルの更新日時
ts = os.path.getmtime(file_path)
print(ts) # 1657734360.18843
print(type(ts)) # <class 'float'>
# datetime型に変換
d = datetime.datetime.fromtimestamp(ts)
print(d) # 2022-07-14 02:46:00.188430
print(type(d)) # <class 'datetime.datetime'>
# 文字列に変換
s = d.strftime('%Y-%m-%d')
print(s) # 2022-07-14
print(type(s)) # <class 'str'>
関連記事
タイムスタンプ・datetime型・文字列型の相互変換