使用 Python 以秒为单位打印文件年龄

新手上路,请多包涵

如果旧文件足够旧,我需要我的脚本来下载新文件。我以秒为单位设置文件的最长期限。为了让我的脚本编写回到正轨,我需要示例代码,其中文件年龄以秒为单位打印出来。

原文由 Marko 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 430
2 个回答

这显示了如何查找文件(或目录)的最后修改时间:

这是自 Epoch 以来的秒数,使用 os.stat

 import os
st=os.stat('/tmp')
mtime=st.st_mtime
print(mtime)
# 1325704746.52

或者,等效地,使用 os.path.getmtime

 print(os.path.getmtime('/tmp'))
# 1325704746.52

如果你想要一个 datetime.datetime 对象:

 import datetime
print("mdatetime = {}".format(datetime.datetime.fromtimestamp(mtime)))
# mdatetime = 2012-01-04 14:19:06.523398

或者使用 time.ctime 的格式化字符串

import stat
print("last accessed => {}".format(time.ctime(st[stat.ST_ATIME])))
# last accessed => Wed Jan  4 14:09:55 2012
print("last modified => {}".format(time.ctime(st[stat.ST_MTIME])))
# last modified => Wed Jan  4 14:19:06 2012
print("last changed => {}".format(time.ctime(st[stat.ST_CTIME])))
# last changed => Wed Jan  4 14:19:06 2012

虽然我没有显示,但对于所有这些方法,都有等效的查找访问时间和更改时间的方法。只需点击链接并搜索“atime”或“ctime”。

原文由 unutbu 发布,翻译遵循 CC BY-SA 3.0 许可协议

另一种方法(我知道我不是第一个答案,但无论如何都可以):

 import time, os, stat

def file_age_in_seconds(pathname):
    return time.time() - os.stat(pathname)[stat.ST_MTIME]

原文由 Ray Toal 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题