print - python read file line by line
Imprime la edad del archivo en segundos usando Python (3)
Necesito mi script para descargar el nuevo archivo, si el anterior es lo suficientemente antiguo. Pongo la edad máxima del archivo en segundos. Para volver al buen camino con la escritura de mi script, necesito un código de ejemplo, donde la antigüedad del archivo se imprime en segundos.
Esto muestra cómo encontrar la última modificación de un archivo (o directorio):
Aquí está la cantidad de segundos desde la Época, usando 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 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 time.ctime usando 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
Aunque no lo mostré, hay equivalentes para encontrar el tiempo de acceso y el tiempo de cambio para todos estos métodos. Simplemente siga los enlaces y busque "atime" o "ctime".
Otro enfoque (sé que no fui 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]
Use stat.M_TIME para obtener la última hora de modificación y restarla de la hora actual.