matobaの学んだこと

とあるPythonエンジニアのブログ。ソフトウェア開発、執筆活動、ライフログ。

Pythonで指定したファイルの更新日時を取得する

Pythonで指定したファイルのタイムスタンプを取得するメモ。

UNIXのタイムスタンプは、いくつか種類がある。

  • stime
  • mtime
  • ctime

とりあえず、今回は、mtimeを取得する例。他もだいたい同じ。

osモジュールのstatを使う。だいたいこんな感じ。

>>> os.stat('path/to/target/file.txt').st_mtime
1565473599.0

os --- 雑多なオペレーティングシステムインタフェース — Python 3.7.4 ドキュメント

UNIXタイムスタンプで返ってくるので、datetimeオブジェクトに直す。

fromtimestampを使うと変換できる。

>>> from datetime import datetime
>>> datetime.fromtimestamp(os.stat('path/to/target/file.txt').st_mtime)
datetime.datetime(2019, 8, 11, 4, 46, 39)

datetime --- 基本的な日付型および時間型 — Python 3.7.4 ドキュメント

パスがすでにpathlibのオブジェクトになってる場合は、getmtimeを使ってUNIXタイムスタンプを取得することもできる。

>>> import os.path 
>>> from pathlib import Path
>>> mtime =  os.path.getmtime(Path('path/to/target/file.txt'))
>>> datetime.fromtimestamp(mtime)
datetime.datetime(2019, 8, 11, 4, 46, 39) 

os.path --- 共通のパス名操作 — Python 3.7.4 ドキュメント