2011-09-15 87 views
12

我想檢查一個文件是否超過一定的時間(例如2天)。比較日期以檢查舊文件

我設法得到文件的創建時間以這樣的方式:

>>> import os.path, time 
>>> fileCreation = os.path.getctime(file) 
>>> file 
1314015638 
>>> time.ctime(os.path.getctime(file)) 
'Mon Aug 22 14:20:38 2011' 

如何我現在可以檢查,如果這是超過2天以上?

我在Linux下工作,但跨平臺解決方案會更好。乾杯!

回答

16
now = time.time() 
twodays_ago = now - 60*60*24*2 # Number of seconds in two days 
if fileCreation < twodays_ago: 
    print "File is more than two days old" 
+1

+1我知道這是很容易的......但我是通過數據類型有點blocket ...非常感謝! :) – Stefano

+0

我相信它會更清潔使用timedelta(參考:愛德華多的答案)。 – Alvaro

18

我知道,這是一個老問題。但我一直在尋找類似的東西,並用此替代解決方案提出了:

from os import path 
from datetime import datetime, timedelta 

two_days_ago = datetime.now() - timedelta(days=2) 
filetime = datetime.fromtimestamp(path.getctime(file)) 

if filetime < two_days_ago: 
    print "File is more than two days old" 
+1

您可以跳過字符串表示的轉換:filetime = datetime.fromtimestamp(path.getctime(file)) –

+0

@ErikForsberg,這樣更好!更新它。謝謝! – Eduardo

+0

不錯,乾淨! – codeScriber