Extrahiere Dateien aus der Zip-Datei und behalte das Mod-Datum - Python 2.7.1 unter Windows 7

9

Ich versuche, Dateien aus einer Zip-Datei mit Python 2.7.1 (unter Windows, fyi) zu extrahieren und jeder meiner Versuche zeigt extrahierte Dateien mit Modified Date = Zeitpunkt der Extraktion (was falsch ist).

%Vor%

Ich habe auch versucht, die .extractall-Methode mit den gleichen Ergebnissen zu verwenden.

%Vor%

Kann mir jemand sagen, was ich falsch mache?

Ich würde gerne glauben, dass dies möglich ist, ohne die modifizierte Zeit nach hier

    
MTAdmin 21.03.2012, 21:36
quelle

4 Antworten

8

Nun, es dauert ein wenig Nachbearbeitung, aber es ist nicht so schlimm:

%Vor%

Okay, vielleicht ist so schlimm.

    
Ethan Furman 21.03.2012, 21:56
quelle
4

Basierend auf Ethan Fumans Antwort habe ich diese Version (mit Python 2.6.6) entwickelt, die ein wenig mehr Sinn ergibt:

%Vor%

Dies extrahiert in das aktuelle Arbeitsverzeichnis und verwendet die ZipFile.extract () -Methode, um die Daten zu schreiben, anstatt die Datei selbst zu erstellen.

    
Ber 17.04.2014 13:06
quelle
3

Basierend auf Bers Antwort habe ich diese Version (unter Verwendung von Python 2.7.11) entwickelt, die auch Verzeichnis-Mod-Daten berücksichtigt.

%Vor%

Da Verzeichnisse geändert werden, während die extrahierten Dateien in ihnen erstellt werden, scheint es keinen Sinn zu geben, ihre Daten mit os.utime zu setzen, bis die Extraktion abgeschlossen ist, so dass diese Version die Verzeichnisnamen und ihre Zeitstempel speichert das Ende.

    
jia103 04.04.2016 05:07
quelle
0

Basierend auf der Antwort von Jia103 habe ich eine Funktion (mit Python 2.7.14) entwickelt, die Verzeichnis- und Dateidaten speichert, NACHDEM alles extrahiert wurde. Dies isoliert jede Hässlichkeit in der Funktion und Sie können auch zipfile.Zipfile.extractAll () oder eine beliebige gewünschte Methode zum Extrahieren von Zip verwenden:

%Vor%

Um Daten zu erhalten, rufen Sie diese Funktion einfach auf, nachdem Ihr Extrakt fertig ist.

Hier ist ein Beispiel, von einem Skript, das ich in zip / unzip-Spielspeicherverzeichnisse geschrieben habe:

%Vor%

Danke allen für eure früheren Antworten!

    
RubinMac 06.01.2018 16:01
quelle

Tags und Links