21 Stimmen

Holen Sie sich die Dateierstellungszeit mit Python auf Linux

Os.stat gibt die Attribute st_mtime und st_ctime zurück, die Änderungszeit ist st_mtime und st_ctime "Änderungszeit" auf POSIX. Gibt es eine Funktion, die die Erstellungszeit einer Datei unter Verwendung von Python und unter Linux zurückgibt?

-1voto

Fletch Hasues Punkte 3

Bestimmte Dateisysteme unterstützen die Aufzeichnung der Erstellungszeit, aber Linux bietet keine Schnittstelle zum Abrufen dieser Zeit.

Siehe http://lwn.net/Articles/397442/

Wenn man versucht, den Befehl "stat" zu verwenden, um sie zu erhalten: % stat -c %w {Datei oder Ordner}

Das Ergebnis wird ein "-" sein, da es nicht die Fähigkeit hat, es abzurufen. Man kann jedoch diese Beispielmethode verwenden, die debugfs mit xstat verwendet, um sie abzurufen (vorausgesetzt, dass das verwendete Dateisystem das Sammeln unterstützt.)

https://gist.github.com/moiseevigor/8c496f632137605b322e

xstat() {
  for target in "${@}"; do
    inode=$(ls -di "${target}" | cut -d ' ' -f 1)
    fs=$(df "${target}"  | tail -1 | awk '{print $1}')
    crtime=$(sudo debugfs -R 'stat <'"${inode}"'>' "${fs}" 2>/dev/null | 
    grep -oP 'crtime.*--\s*\K.*')
    printf "%s\t%s\n" "${crtime}" "${target}"
  done
}

Beachten Sie, dass dies sudo erfordert.

-1voto

railsfanatic Punkte 179

Was meinst du damit, dass es nicht gemacht werden kann [1]? Die Funktion,

os.stat(path).st\_birthtime, funktioniert super.

\[1\]:
Jemand sagte, dass es nicht gemacht werden könne
Aber er antwortete mit einem Schmunzeln
Dass es vielleicht nicht möglich sei, aber er wäre einer
Der es erst sagen würde, wenn er es versucht hätte.
Also machte er sich gleich daran mit einem leichten Lächeln
Auf seinem Gesicht. Wenn er sich Sorgen machte, versteckte er es.
Er begann zu singen, als er sich der Sache annahm
Die nicht gemacht werden konnte, und er hat es geschafft!
-- Edgar Albert Guest

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