2014-12-20 15 views
15

Io uso il seguente codice per ottenere la data di modifica del file se esso esiste:Ottenere file di data di modifica in Python

if os.path.isfile(file_name): 
    last_modified_date = datetime.fromtimestamp(os.path.getmtime(file_name)) 
else: 
    last_modified_date = datetime.fromtimestamp(0) 

Esiste un modo più elegante/short?

+2

Credo che questo risponda alla tua domanda. http://stackoverflow.com/questions/237079/how-to-get-file-creation-modification-date-times-in-python –

risposta

28

È possibile utilizzare la gestione delle eccezioni; non c'è bisogno di prima prova se il file è lì, basta prendere l'eccezione, se non è:

try: 
    mtime = os.path.getmtime(file_name) 
except OSError: 
    mtime = 0 
last_modified_date = datetime.fromtimestamp(mtime) 

Questo sta chiedendo il perdono piuttosto che il permesso.

+0

Preferisco questa opzione poiché è più breve e più leggibile. Sfortunatamente un liner suggerito da @thefourtheye non si adatta a 120 linee limite senza perdere leggibilità. Ovviamente è solo la mia opinione personale. – Zzokk

+0

In realtà preferisco la soluzione data nella domanda ... perché la tua soluzione significa: capire che potrebbe esserci un indicatore orario 0 e che questa cosa ha un significato speciale. – GhostCat

+0

@GhostCat: il risultato è esattamente lo stesso. Se lo desideri, puoi spostare direttamente la 'datetime.fromtimestamp' nelle suite' try' e 'except', ma è solo una maggiore digitazione. –

Problemi correlati