Python 如何计算日期之间的天数

Python 如何计算日期之间的天数,python,timedelta,Python,Timedelta,我需要从存储备份的目录中删除超过14天的文件。我可以使用如下方式获取单个文件的时间: start = (os.path.getmtime(join(dirpath, name))/3600*24) d = (datetime.timedelta(time.now() - os.path.getmtime(join(dirpath, dirname)) 但是我对如何使用timedelta来找出这个日期和当前日期之间的差异感到困惑 我想用这样的东西: start = (os.path.g

我需要从存储备份的目录中删除超过14天的文件。我可以使用如下方式获取单个文件的时间:

start = (os.path.getmtime(join(dirpath, name))/3600*24)  
d = (datetime.timedelta(time.now() - os.path.getmtime(join(dirpath, dirname))  
但是我对如何使用timedelta来找出这个日期和当前日期之间的差异感到困惑

我想用这样的东西:

start = (os.path.getmtime(join(dirpath, name))/3600*24)  
d = (datetime.timedelta(time.now() - os.path.getmtime(join(dirpath, dirname))  
但我就是不明白。我一个人在这里,我想得到一些帮助

试试看:

if time.time() - os.path.getmtime(filename) > 14 * 24 * 3600:
  print 'the file is older than 14 days'

类似的情况?

a
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

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'

很好,非常感谢。添加了适当数量的括号,它可能正好满足我的需要。