Pythonでファイルが今日未更新か確認する

そのファイルが今日まだ更新されていないなら……という処理をしたいとき。

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('今日は未更新')
  1. pathlib.Path(ファイルパス).stat().st_mtimeでファイルの最終更新日時(UNIX時間)を取得
  2. datetime.datetime.fromtimestamp()でdatetime.datetimeオブジェクトに変換
  3. datetime.date()でdatetime.dateオブジェクトに変換
  4. 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('今日は未更新')

環境

参考