1. ホーム
  2. python

[解決済み] ファイルの作成日時、変更日時を取得する方法

2022-03-16 18:33:22

質問

ファイルの作成日や変更日に基づいて何かを行う必要があるスクリプトがあるのですが、LinuxとWindowsで動作させる必要があります。

ファイルの作成と変更を取得するための最適なクロスプラットフォームの方法は何ですか? 日付/時刻 をPythonで作成することはできますか?

どのように解決するのですか?

Python 3.4以降では、オブジェクト指向の pathlibモジュール このインターフェースは os モジュールの多くのラッパーを含んでいます。 以下は、ファイルの統計情報を取得する例です。

>>> import pathlib
>>> fname = pathlib.Path('test.py')
>>> assert fname.exists(), f'No such file: {fname}'  # check that the file exists
>>> print(fname.stat())
os.stat_result(st_mode=33206, st_ino=5066549581564298, st_dev=573948050, st_nlink=1, st_uid=0, st_gid=0, st_size=413, st_atime=1523480272, st_mtime=1539787740, st_ctime=1523480272)

について詳しくは os.stat_result を参照してください。 ドキュメント . 修正時間については fname.stat().st_mtime :

>>> import datetime
>>> mtime = datetime.datetime.fromtimestamp(fname.stat().st_mtime, tz=datetime.timezone.utc)
>>> print(mtime)
datetime.datetime(2018, 10, 17, 10, 49, 0, 249980)

Windows であれば作成時刻、Unix であれば最新のメタデータ変更時刻を知りたい場合は fname.stat().st_ctime :

>>> ctime = datetime.datetime.fromtimestamp(fname.stat().st_ctime, tz=datetime.timezone.utc)
>>> print(ctime)
datetime.datetime(2018, 4, 11, 16, 57, 52, 151953)

この記事 は、pathlibモジュールに関するより有用な情報と例を提供しています。