2012-06-09 12 views
9

Na przykładJak odczytywać atrybuty plików w katalogu?

import os 
print os.listdir() 

lista plików w katalogu.

Jak uzyskać czas modyfikacji pliku dla wszystkich plików w katalogu?

+0

możliwe duplikat [? Jak dostać tworzenie pliku i data modyfikacji/razy w Pythonie] (http://stackoverflow.com/questions/237079/how-to-get-file-creation-modification-date-times-in-python) –

Odpowiedz

28

Użyj wywołania os.stat w celu uzyskania właściwości pliku, takich jak czas modyfikacji.

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

st_mtime jest liczbą rzeczywistą od pytona 2,5 do góry, co stanowi sekund od epoki; użyj modułów lub datetime, aby zinterpretować je dla celów wyświetlania lub podobnych.

Należy pamiętać, że precyzyjna wartość zależy od systemu operacyjnego używasz:

Dokładne znaczenie i uchwałą st_atime, st_mtime i atrybuty st_ctime zależą od systemu operacyjnego i systemu plików. Na przykład, w systemach Windows używających systemów plików FAT lub FAT32, st_mtime ma 2-sekundową rozdzielczość, a st_atime ma tylko 1-dniową rozdzielczość. Szczegółowe informacje można znaleźć w dokumentacji systemu operacyjnego.

Jeśli wszystko, co robisz, otrzymasz czas modyfikacji, to metoda os.path.getmtime jest przydatnym skrótem; używa metody os.stat pod maską.

Pamiętaj jednak, że wywołanie os.stat jest stosunkowo kosztowne (dostęp do systemu plików), więc jeśli wykonasz to w wielu plikach i potrzebujesz więcej niż jednego punktu danych na plik, lepiej jest użyć numeru os.stat i użyć ponownie zwracane są informacje, zamiast korzystać z wygodnych metod os.path, w których os.stat będzie wywoływane wiele razy na plik.

3

Jeśli chcesz tylko zmodyfikowany czas, to os.path.getmtime(filename) dostanie go za Ciebie. Jeśli używasz listdir z argumentem, musisz też użyć os.path.join:

import os, os.path 

for filename in os.listdir(SOME_DIR): 
    print os.path.getmtime(os.path.join(SOME_DIR, filename)) 
Powiązane problemy