2011-09-15 8 views
12

Voglio verificare se un file è precedente a un certo periodo di tempo (ad esempio 2 giorni).Confronto delle date per verificare i vecchi file

sono riuscito ad ottenere l'ora di creazione di file in modo tale:

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

Come si può ora controllare se questo è più vecchio di 2 giorni?

Io lavoro sotto Linux, ma una soluzione multipiattaforma sarebbe meglio. Saluti!

risposta

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 sapevo che era abbastanza facile ... ma ero un po 'bloccante per tipi di dati ... grazie mille! :) – Stefano

+0

Credo che sarebbe più pulito usare timedelta (ref .: la risposta di Eduardo). – Alvaro

18

Lo so, è una vecchia domanda. Ma stavo cercando qualcosa di simile e ho trovato questa soluzione alternativa:

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

È possibile saltare la conversione da e verso la rappresentazione della stringa: filetime = datetime.fromtimestamp (path.getctime (file)) –

+0

@ErikForsberg, che è più bello! Aggiornato. Grazie! – Eduardo

+0

bello e pulito! – codeScriber