Python获取文件的最后读取时间

Python获取文件的最后读取时间,python,time,file-access,Python,Time,File Access,我正在寻找一个解决方案,以获取文件最后读取的时间。仅在读取模式下打开时,不会修改或创建文件。这是有效的,但仅适用于在文件中写入。如果以读取模式打开文件,则时间不正确: f = open('my_path/test.txt', 'r') f.close() print time.ctime(os.stat('my_path/test.txt').st_mtime) 有什么提示吗?您看到的是stat结构中的错误条目。您想改用.st_atime值: print time.ctime(os.stat

我正在寻找一个解决方案,以获取文件最后读取的时间。仅在读取模式下打开时,不会修改或创建文件。这是有效的,但仅适用于在文件中写入。如果以读取模式打开文件,则时间不正确:

f = open('my_path/test.txt', 'r')
f.close()

print time.ctime(os.stat('my_path/test.txt').st_mtime)

有什么提示吗?

您看到的是
stat
结构中的错误条目。您想改用
.st_atime
值:

print time.ctime(os.stat('my_path/test.txt').st_atime)
从:

  • st_atime
    -最近访问的时间
请注意,并非所有系统都会更新时间戳,请参阅。从2.6.30开始,Linux内核默认使用
relatime
设置,其中
atime
值仅在超过24小时后更新。您可以通过在
fstab
中设置
strictime
选项来更改此设置


Windows Vista还禁用了对
atime
的更新,但您可以。

只有在资源管理器中打开文件,而不是在Python代码中打开文件时,此功能才起作用……在这种情况下,操作系统仅在Python不会触发的特定情况下更新访问时间。如果未更新
atime
值,则没有其他指标显示上次访问文件的时间。这是什么平台,Windows?不,Linux(Ubuntu 12.04),但程序必须跨平台运行。到目前为止,我通过将文件名保存到一个新文件中解决了这个问题,但我发现它不太好。也许这是唯一的方法…@snowflake:看,你正在运行一个启用了
relatime
的Linux系统<在这种情况下,code>atime每24小时只更新一次。嗯,谢谢Martijn。我尝试了这个方法,但如果在Python代码中以读取模式打开文件,它将不起作用。