2011-09-22 61 views
3

我需要從存儲備份的目錄中刪除超過14天的文件。我可以用這樣的事情得到一個單獨的文件的時間:如何在日期之間獲得日期

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

,但我發現我與如何使用timedelta找到這和當前日期之間的區別感到困惑。

我想用這樣的:

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

,但我只是沒有得到它。我在這裏我自己,我想要一些幫助。

回答

3

嘗試:

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

試過很好,非常感謝。添加了適當數量的括號,它可能只是爲我的需要做的伎倆。 –

0
datetime.datetime.now()-datetime.timedelta(days=14) 

類似的東西?

2

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 
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' 
相關問題