Python スクリプトでファイルの日付を変更するメモ
os.utime で、ファイルのアクセス時刻と更新時刻を変更する。
作成時刻は、OS依存で Windows なら win32_setctime パッケージ
# -*- coding: UTF-8 -*- import os import pathlib from datetime import datetime p = pathlib.Path('/var/log/test.log') print(p.stat()) # os.stat_result(st_mode=33206, st_ino=275282527223238120, st_dev=3390352220, # st_nlink=1, st_uid=0, st_gid=0, st_size=539, # st_atime=1603799568, st_mtime=1603799568, st_ctime=1603720044) # # st_atime : 最後にアクセスした時刻。 # st_mtime : 最後に変更された時刻。 # st_ctime : 作成時刻 Windows or メタデータが更新された時刻 UNIX print(type(p.stat().st_atime)) # timestamp で float print(p.stat().st_atime) atimedate = datetime.fromtimestamp(p.stat().st_atime) mtimedate = datetime.fromtimestamp(p.stat().st_mtime) ctimedate = datetime.fromtimestamp(p.stat().st_ctime) print('st_atime : %s' % atimedate) print('st_mtime : %s' % mtimedate) print('st_ctime : %s' % ctimedate) # os.utime で、任意の時刻にファイル更新時刻を変更する atime = datetime(2020, 10, 22, 18, 2, 12, 108924).timestamp() mtime = datetime(2020, 10, 22, 15, 32, 53).timestamp() os.utime('/var/log/test.log', (atime, mtime)) # Windows なら、作成日時は win32_setctime で # 変更する win32_setctime.setctime(file, 作成日時)