2011-09-15 12 views
12

Bir dosyanın belirli bir süreden daha eski olup olmadığını kontrol etmek istiyorum (ör. 2 gün). Eski dosyaları denetlemek için tarihlerin karşılaştırılması

Ben öyle bir şekilde dosya oluşturma zamanı başardı:

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

nasıl şimdi bu 2 günden eski olup olmadığını kontrol edebilir?

Linux altında çalışıyorum, ancak çapraz platform çözümü daha iyi olurdu. Şerefe!

cevap

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 i oldukça kolay olduğunu biliyordum ... ama veri türlerine göre biraz Blocket oldu: Ama benzer bir şey arıyordum ve bu alternatif çözüm geldi edildi! :) – Stefano

+0

Timedelta'yı kullanmanın daha temiz olacağına inanıyorum (ref .: Eduardo'nun cevabı). – Alvaro

18

Biliyorum, bu eski bir sorudur. Çok ... teşekkürler

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

Dönüşümü dize gösterimine ve dizinden atlayabilirsiniz: filetime = datetime.fromtimestamp (path.getctime (dosya)) –

+0

@ErikForsberg, bu daha hoş! Güncellendi. Teşekkürler! – Eduardo

+0

güzel ve temiz! – codeScriber