我需要从存储备份的目录中删除超过14天的文件。我可以使用以下内容获取单个文件的时间:
start = (os.path.getmtime(join(dirpath, name))/3600*24)
但是我对如何使用timedelta找到它与当前日期之间的差异感到困惑。
我想使用这样的东西:
d = (datetime.timedelta(time.now() - os.path.getmtime(join(dirpath, dirname))
但我只是没有得到它。我在这里独自一人,我会喜欢一些帮助。
答案 0 :(得分:4)
尝试:
if time.time() - os.path.getmtime(filename) > 14 * 24 * 3600:
print 'the file is older than 14 days'
答案 1 :(得分:2)
timedelta
是从另一个datetime
中减去datetime
的结果。在此示例中,我显示我的/bin/bash
为1168天且比/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
答案 2 :(得分:0)
datetime.datetime.now()-datetime.timedelta(days=14)
那样的东西?
答案 3 :(得分:0)
aix使用time
模块得到了非常好的答案。这是一个使用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'