6 Stimmen

Python: Ermitteln von Datei-Änderungszeiten mit einer Auflösung von mehr als einer Sekunde

os.path.getmtime() y os.stat() scheinen nur Werte in ganzen Sekunden zu liefern.

Ist dies die größtmögliche Auflösung, die auf einem Windows- oder OSX-Dateisystem möglich ist, oder gibt es eine Möglichkeit, eine höhere Auflösung für die Dateizeiten zu erhalten?

5voto

Miles Punkte 29684

HFS+ (verwendet von OS X) hat eine Datumsauflösung von eine Sekunde .

1 Stimmen

Der Wikipedia-Artikel, auf den Sie verweisen, sagt nichts mehr über die Zeitauflösung von HFS+ aus. Ich habe jedoch eine Bestätigung in John Siracusas Bericht über Lion gefunden. arstechnica.com/apple/2011/07/mac-os-x-10-7/12

4voto

unwind Punkte 377331

Die Dokumentation für os.stat() hat eine Notiz, auf der steht:

Die genaue Bedeutung und Auflösung der st_atime, st_mtime, und st_ctime Mitglieder hängt vom Betriebssystem Betriebssystem und dem Dateisystem ab. Für Beispiel: Auf Windows-Systemen mit den FAT- oder FAT32-Dateisystem verwenden, hat st_mtime eine 2-Sekunden-Auflösung, und st_atime hat nur eine 1-Tages-Auflösung. Siehe Ihre Dokumentation des Betriebssystems für Einzelheiten.

Zum Beispiel Windows verwendet die FILETIME-Struktur zur Darstellung der Dateizeiten eine Auflösung von 100 Nanosekunden. Ich würde erwarten, dass Python dies "weiß" und Ihnen die bestmögliche Auflösung gibt. Ist es möglich, dass Sie Dateien auf einem FAT-Dateisystem verwenden?

1 Stimmen

Die Dateien wurden auf einem OSX-Dateisystem geschrieben und zeigten nur dann eine höhere Auflösung unter Windows, wenn sie auf dem Windows-System geändert wurden

0voto

bignose Punkte 27108

Wie dokumentiert in die Python os Modul Sie ist eine portable Schnittstelle zu betriebssystemspezifischen Funktionen. Je nachdem, auf welcher Plattform Sie arbeiten, werden Sie ein unterschiedliches Verhalten feststellen.

Genauer gesagt, die Änderungszeit, die von stat ist abhängig von dem Dateisystem, in dem sich die Dateien befinden. Für Einträge in einem FAT-Dateisystem beträgt die feinste Auflösung für die Änderungszeit beispielsweise 2 Sekunden. Andere Dateisysteme haben andere Auflösungen.

0voto

Itzik Hoch Punkte 41

Python 3 os.stat() enthält die Eigenschaften st_atime_ns, st_ctime_ns, st_mtime_ns mit einer Auflösung von Nanosekunden, abhängig von der Zeitstruktur, die vom Dateisystem gespeichert wird. siehe: https://docs.python.org/3/library/os.html

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X