17

可能重复:
python:哪个文件较新以及多长时间

在 python 中——我如何检查——如果文件比其他文件更新?

编辑

有创建时间和修改时间。

该问题应明确说明所需的属性。

修改

  • os.stat(FILE).st_mtime

  • os.path.getmtime(FILE)

创建

os.path.getctime(FILE)并且os.stat(FILE).st_ctime不会在类 Unix 操作系统上提供创建时间。Link by root提供了如何在类 Unix 机器上找出创建时间的解决方案。

4

4 回答 4

14

您也可以使用os.path.getctime. True如果file1在之前创建,则此示例将返回file2False否则将返回。

import os.path
os.path.getctime('file1') < os.path.getctime('file2')

编辑:请注意,您的问题没有跨平台解决方案——Unix 中的 ctime() 表示上次更改时间,而不是创建时间。使用 os.stat(file).st_ctime 时也是如此。

似乎可以在 unix 机器上运行。

于 2012-10-10T10:28:43.680 回答
13
import os
f1 = os.path.getmtime('file1')
f2 = os.path.getmtime('file2')

if f1 > f2:

检查修改时间可能是一种解决方案

于 2012-10-10T10:22:12.007 回答
4

os.stat在任何文件上使用,都会为您提供一组关于您的文件的 10 种不同统计信息。其中一个统计信息是creation time-> st_ctime.. 您可以使用它来计算两个文件的创建时间之间的差异。

>>> import os
>>> os.stat("D:\demo.pl")
nt.stat_result(st_mode=33206, st_ino=0L, st_dev=0, st_nlink=0, st_uid=0, 
st_gid=0, st_size=135L, st_atime=1348227875L, st_mtime=1348228036L, 
st_ctime=1348227875L)

>>> os.stat("D:\demo.pl").st_ctime
1348227875.8448658
于 2012-10-10T10:29:52.300 回答
1
import os

def comp(path1, path2):    
    return os.stat(path1).st_ctime > os.stat(path2).st_ctime
于 2012-10-10T10:23:12.600 回答