2011-09-15 19 views
12

Quiero verificar si un archivo es anterior a una cierta cantidad de tiempo (por ejemplo, 2 días).Comparación de fechas para buscar archivos antiguos

me las arreglé para obtener el tiempo de creación de archivos de tal manera:

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

¿Cómo puedo comprobar ahora si este es mayor de 2 días?

Trabajo en Linux, pero una solución multiplataforma sería mejor. ¡Aclamaciones!

Respuesta

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 sabía que era muy fácil ... pero yo estaba un poco Blocket por tipos de datos ... muchas gracias! :) – Stefano

+0

Creo que sería más limpio usar timedelta (ref .: la respuesta de Eduardo). – Alvaro

18

Lo sé, es una vieja pregunta. Pero yo estaba buscando algo similar y se acercó con esta solución 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

Puede omitir la conversión ay desde la representación de la cadena: filetime = datetime.fromtimestamp (path.getctime (file)) –

+0

@ErikForsberg, ¡eso es mejor! Actualizado. ¡Gracias! – Eduardo

+0

agradable y limpio! – codeScriber

Cuestiones relacionadas