Python: Dateien Sortieren von datetime mehr details
Ich mit python 2.7 in ubuntu. Wie Sortiere ich Dateien, genauer um, denn ich hatte ein Skript erstellen, in die Reihen der txt-Fliegen für die split-Sekunden. Ich hatte die mod ein Skript, es finden sich die ältesten und jüngsten-Datei, aber es scheinen, wie es nur vergleichen mit dem zweiten aber nicht Millisekunden.
Meine print-Ausgabe:
output_04.txt 06/08/12 12:00:18
output_05.txt 06/08/12 12:00:18
-----------
oldest: output_05.txt
youngest: output_05.txt
-----------
Aber die richtige Reihenfolge der ältesten Datei sollte "output_04.txt".
Fachwissen wissen? Danke!
Aktualisiert:
Vielen Dank an alle.
Ich habe versucht, mit all den codes, aber scheinen, wie Sie können nicht die Ausgabe, die ich brauche.
Sorry Jungs, ich wollte schätzen Sie alle. Aber das Beispiel meiner Dateien wie oben die gleiche Zeit haben, so dass, wenn die voll-Datum, Stunde, min, Sek sind alle gleich, es haben zu vergleichen, durch Millisekunde. ist es nicht? Korrigieren Sie mich, wenn im falschen. Vielen Dank an alle! Prost!
- Ist es möglich, dass Zugriff auf Daten nur speichern, mit einer Auflösung von Sekunden, nicht Millisekunden?
- Verwandte: stackoverflow.com/questions/168409/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
os.path.getmtime(path_to_file)
um die änderungszeit der Datei.Einer Weise der Bestellung die Liste der Dateien zu erstellen, die eine Liste von Ihnen mit
os.listdir
bekommen und der Zeitpunkt der änderung der einzelnen ein. Sie hätten eine Liste von Tupeln und man könnte, um es durch das zweite element des Tupels (das wäre der Zeitpunkt der änderung).Können Sie auch überprüfen Sie die Auflösung des
os.path.getmtime
mitos.stat_float_times()
. Wenn die letztere gibt True zurück, dannos.path.getmtime
gibt einen float (dies zeigt an, dass Sie mehr Auflösung als Sekunden).files.sort(key=lambda f: os.path.getmtime(os.path.join(path, f)))
get_files
nimmtpath
als argument und wennpath
existiert, änderungen aktuelle Verzeichnis in den Pfad und die Liste der Dateien, die generiert werden.get_file_details
Erträge der Zeitpunkt der letzten änderung für die Datei.get_files
gibt ein dict mit dem Dateinamen als Schlüssel, geänderte Uhrzeit als Wert. Dann standardsorted
wird verwendet für die Sortierung der Werte.reverse
parameter übergeben werden kann, um aufsteigend oder absteigend Sortieren.Kann man nicht vergleichen, die Millisekunden da gibt es keine solche Informationen.
Den stat(2) - Aufruf gibt drei time_t Felder:
- Zugang Zeit
- Erstellung
- last modification time
time_t ist eine Ganzzahl, die die Anzahl der Sekunden (nicht Millisekunden), die verstrichen ist, seit 00:00, Jan 1 1970 UTC.
Also die maximale detail können Sie im Datei-Zeit (in Sekunden). Ich weiß nicht, ob einige-Dateisystem bietet mehr Auflösung, aber Sie würde bestimmte Anrufe in C und dann schreiben Wrapper in Python, Sie zu benutzen.
HALLO versuchen Sie folgenden code
Hoffe das hilft
Danke