3

我需要从存储备份的目录中删除超过 14 天的文件。我可以通过使用这样的东西来获取单个文件的时间:

start = (os.path.getmtime(join(dirpath, name))/3600*24)  

但是我对如何使用 timedelta 来查找此日期与当前日期之间的差异感到困惑。

我想使用这样的东西:

d = (datetime.timedelta(time.now() - os.path.getmtime(join(dirpath, dirname))  

但我就是不明白。我一个人在这里,我很想得到一些帮助。

4

4 回答 4

4

尝试:

if time.time() - os.path.getmtime(filename) > 14 * 24 * 3600:
  print 'the file is older than 14 days'
于 2011-09-22T19:58:21.553 回答
2

a是从 anothertimedelta中减去 a 的结果。在这个例子中,我显示 my是 1168 天并且比 my 大一些:datetimedatetime/bin/bash/dev/null

>>> import datetime
>>> import os.path
>>> datetime.datetime.fromtimestamp(os.path.getmtime("/dev/null"))
datetime.datetime(2011, 7, 24, 18, 58, 28, 504962)
>>> datetime.datetime.fromtimestamp(os.path.getmtime("/bin/bash"))
datetime.datetime(2008, 5, 12, 15, 2, 42)
>>> datetime.datetime.fromtimestamp(os.path.getmtime("/dev/null"))-datetime.datetime.fromtimestamp(os.path.getmtime("/bin/bash"))
datetime.timedelta(1168, 14146, 504962)
>>> d = datetime.datetime.fromtimestamp(os.path.getmtime("/dev/null"))-datetime.datetime.fromtimestamp(os.path.getmtime("/bin/bash"))
>>> d.days
1168
于 2011-09-22T20:13:14.553 回答
0

timeaix 使用该模块有一个非常好的答案。这是一个使用datetime.

from datetime import *
maxdays = timedelta(14)
mtime =datetime.fromtimestamp(os.path.getmtime(filename))
if mtime - datetime.now() > maxdays:
    print filename, 'older than 14 days'
于 2011-09-22T20:19:27.467 回答
0
datetime.datetime.now()-datetime.timedelta(days=14)

类似的东西?

于 2011-09-22T20:02:26.350 回答