获取文件的上次访问时间?

发布于 2021-01-29 16:53:00

我想获取上次访问该文件的时间,我尝试了以下代码:

import os, time

os.system("python test.py")
print os.stat('test.py').st_atime

time.sleep(60)

os.system("python test.py")
print os.stat('test.py').st_atime

但是每次输出都如下:

1358489344.72
1358489344.72

我期望延迟之前和之后的输出有所不同。我每次运行代码的输出也一样。

有什么问题吗?

关注者
0
被浏览
52
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    字段st_atime通过文件访问来更改,例如,通过execve(2),mknod(2),pipe(2),utime(2)和read(2)(大于零字节)进行更改。其他例程,例如mmap(2),可能会也可能不会更新st_atime。

    当您运行“ python test.py”时,它不会调用read(2),而是会调用mmap(2)。这就是为什么不增加访问时间的原因。

    这是“ strace python test.py”的输出

    open("test.py", O_RDONLY)               = 3
    fstat(3, {st_mode=S_IFREG|0644, st_size=36, ...}) = 0
    mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2ad626cdd000
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看