Erhalte Datei-Erstellungszeit mit Python auf Mac

8

Pythons os.path.getctime auf dem Mac (und unter Unix im Allgemeinen) gibt nicht das Datum an, an dem eine Datei erstellt wurde, sondern "den Zeitpunkt der letzten Änderung" (zumindest nach den Dokumenten). Auf der anderen Seite kann ich im Finder die tatsächliche Erstellungszeit der Datei sehen, so dass diese Information von HFS + beibehalten wird.

Haben Sie Vorschläge, wie Sie die Zeit für die Dateierstellung auf dem Mac in einem Python-Programm erhalten?

    
cefstat 03.06.2009, 20:16
quelle

2 Antworten

14

Verwenden Sie die Eigenschaft st_birthtime auf das Ergebnis eines Aufrufs von os.stat() (oder fstat / lstat ).

%Vor%

Sie können das Integer-Ergebnis in ein Datetime-Objekt konvertieren, indem Sie datetime.datetime.fromtimestamp() .

Aus irgendeinem Grund glaube ich nicht, dass dies unter Mac OS X funktionierte, als diese Antwort zuerst geschrieben wurde, aber ich könnte mich irren, und es funktioniert jetzt, sogar mit älteren Versionen von Python. Die alte Antwort ist unten für die Nachwelt.

Verwenden von ctypes , um auf den Systemaufruf stat64 zuzugreifen (funktioniert mit Python 2.5 +):

%Vor%

Mit subprocess rufen Sie das Dienstprogramm stat auf:

%Vor%     
Miles 03.06.2009, 21:02
quelle
1

ctime unterscheidet sich auf der Plattform: Auf einigen Systemen (wie Unix) ist der Zeitpunkt der letzten Änderung der Metadaten und auf anderen (wie Windows) die Erstellungszeit . Das liegt daran, dass Unices normalerweise nicht die "ursprüngliche" Erstellungszeit beibehalten.

Das heißt, Sie können auf alle Informationen zugreifen, die das Betriebssystem mit dem Modul stat bereitstellt.

  

Das Statistikmodul definiert Konstanten und Funktionen zum Interpretieren der Ergebnisse von os.stat (), os.fstat () und os.lstat () (falls vorhanden). Umfassende Einzelheiten zu den Aufrufen stat, fstat und lstat finden Sie in der Dokumentation zu Ihrem System.

     

stat.ST_CTIME
  Die "ctime" wie vom Betriebssystem gemeldet. Auf einigen Systemen (wie Unix) ist der Zeitpunkt der letzten Änderung der Metadaten und auf anderen (wie Windows) der Zeitpunkt der Erstellung (siehe Plattformdokumentation für Details).

    
lothar 03.06.2009 20:20
quelle

Tags und Links