Pythonでファイルが今日未更新か確認する
この投稿は最終更新日から1年以上経過しています
そのファイルが今日まだ更新されていないなら……という処理をしたいとき。
datetime.dateオブジェクトで比較
ファイルの最終更新日と今日の日付とをdatetime.dateオブジェクトで比較する。
import pathlib
from datetime import date, datetime, time
# ファイルパス
p = pathlib.Path('hoge.txt')
# ファイルの最終更新日
dt = datetime.fromtimestamp(p.stat().st_mtime).date()
# 今日と比較
if date.today() > dt:
print('今日は未更新')
- pathlib.Path(ファイルパス).stat().st_mtimeでファイルの最終更新日時(UNIX時間)を取得
- datetime.datetime.fromtimestamp()でdatetime.datetimeオブジェクトに変換
- datetime.date()でdatetime.dateオブジェクトに変換
- datetime.dateオブジェクトを返すdatetime.date.today()と比較する
datetime.datetimeオブジェクトで比較
あるいはdatetime.datetimeオブジェクトの方に揃えて比較する。
dt = datetime.fromtimestamp(p.stat().st_mtime)
# 今日
d = datetime.strptime(date.today().strftime('%Y%m%d'), '%Y%m%d')
# または結合して
# d = datetime.combine(date.today(), time())
if d > dt:
print('今日は未更新')
- datetime.date.today()をstrftime()で文字列にしてからdatetime.datetime.strptime()に渡してdatetime.datetimeオブジェクトにする
- datetime.datetime.combine()を使っても同じ結果が得られる
環境
- Python 3.8.5