如何获取文件创建和修改日期/时间
问题描述
我有一个脚本需要根据文件创建和修改日期执行一些操作,但它必须在Linux和Windows上运行。
在Python中创建和修改文件的最佳跨平台方式是什么?日期/时间?
解决方案
在Python3.4及更高版本中,您可以使用面向对象的pathlib module接口,该接口包括许多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
包含内容的详细信息,请参阅the documentation。您需要的修改时间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)
This article提供了有关pathlib模块的更多有用信息和示例。
相关文章