2012-06-09 16 views
9

Per esempio,Come leggere gli attributi del file nella directory?

import os 
print os.listdir() 

file di elenco di directory.

Come ottenere il tempo di modifica del file per tutti i file nella directory?

+0

possibile duplicato di [? Come ottenere la creazione del file e data di modifica/orari in Python] (http://stackoverflow.com/domande/237079/how-to-get-file-creazione-modifica-date-volte-in-python) –

risposta

28

Utilizzare la chiamata os.stat per ottenere le proprietà del file come il tempo di modifica.

import os 
for filename in os.listdir(): 
    info = os.stat(filename) 
    print info.st_mtime 

st_mtime è un valore float pitone 2.5 e superiore, che rappresentano secondi da epoch; utilizzare i moduli time o datetime per interpretarli a scopo di visualizzazione o simili.

si noti che la precisione del valore dipende dal sistema operativo che si sta utilizzando:

Il significato e la risoluzione dei st_atime, st_mtime, e gli attributi st_ctime esatto dipende dal sistema operativo e il file system. Ad esempio, su sistemi Windows che utilizzano i file system FAT o FAT32, st_mtime ha una risoluzione di 2 secondi e st_atime ha solo una risoluzione di 1 giorno. Consultare la documentazione del proprio sistema operativo per i dettagli.

Se tutto ciò che si sta facendo è ottenere l'ora di modifica, quindi il metodo os.path.getmtime è una comoda scorciatoia; utilizza il metodo os.stat sotto il cofano.

Nota tuttavia, che la chiamata os.stat è relativamente costoso (l'accesso ai file di sistema), quindi se si esegue questa operazione su un sacco di file, ed hai bisogno di più di un punto dati per ogni file, si sta meglio utilizzando os.stat e riutilizzare il informazioni restituite anziché utilizzare i metodi di convenienza os.path in cui os.stat verrà chiamato più volte per file.

3

Se si desidera solo il tempo modificato, quindi os.path.getmtime(filename) lo otterrà per voi. Se si utilizza listdir con un argomento, è necessario utilizzare anche os.path.join:

import os, os.path 

for filename in os.listdir(SOME_DIR): 
    print os.path.getmtime(os.path.join(SOME_DIR, filename)) 
Problemi correlati