2011-07-29 9 views
19

Necesito mi script para descargar un archivo nuevo, si el anterior tiene la antigüedad suficiente. Establecí la edad máxima del archivo en segundos. Para poder retomar mis tareas de escritura de guiones, necesito un código de ejemplo, donde la antigüedad del archivo se imprime en segundos.Imprime la antigüedad del archivo en segundos usando Python

+1

Nos estará encantado de ayudarle a corregir un problema en su código existente. En la mayoría de los casos, no escribiremos el código para usted. –

+2

Bueno, ciertamente no puedo estar de acuerdo contigo. Creo que dar ejemplos no es escribir el código para mí. Y también, si dices que lo que estoy pidiendo es que me escribas el código, entonces hay un montón de código escrito para otras personas. – Marko

Respuesta

26

Esto muestra cómo encontrar (o del directorio) última fecha de modificación de un archivo:

Aquí son el número de segundos desde la época, utilizando os.stat

import os 
st=os.stat('/tmp')  
mtime=st.st_mtime 
print(mtime) 
# 1325704746.52 

o, equivalentemente , usando os.path.getmtime:

print(os.path.getmtime('/tmp')) 
# 1325704746.52 

Si desea que un objeto datetime.datetime:

import datetime   
print("mdatetime = {}".format(datetime.datetime.fromtimestamp(mtime))) 
# mdatetime = 2012-01-04 14:19:06.523398 

o una cadena con formato utilizando time.ctime

import stat 
print("last accessed => {}".format(time.ctime(st[stat.ST_ATIME]))) 
# last accessed => Wed Jan 4 14:09:55 2012 
print("last modified => {}".format(time.ctime(st[stat.ST_MTIME]))) 
# last modified => Wed Jan 4 14:19:06 2012 
print("last changed => {}".format(time.ctime(st[stat.ST_CTIME]))) 
# last changed => Wed Jan 4 14:19:06 2012 

A pesar de que no lo demostró, hay equivalentes para encontrar el tiempo de acceso y cambiar el tiempo para todos estos métodos. Simplemente siga los enlaces y busque "atime" o "ctime".

+6

Aquí está mi solución: 'import os import time st = os.stat (Filename) Age = (time.time() - st.st_mtime) print Age' – Marko

12

Otro enfoque (sé que no era la primera respuesta, pero aquí va de todos modos):

import time, os, stat 

def file_age_in_seconds(pathname): 
    return time.time() - os.stat(pathname)[stat.ST_MTIME] 
Cuestiones relacionadas