Schlechte magische Zahl Fehler mit ZipFile-Modul in Python

8

Ich verwende Python 2.7 unter Windows 7 (64 Bit). Wenn ich versuche, eine Zip-Datei mit dem ZipFile-Modul zu entpacken, bekomme ich folgenden Fehler: -

%Vor%

WinRAR konnte die Datei extrahieren, die ich gerade extrahieren möchte. Hier ist der Code, den ich verwendet habe, um Dateien aus myzip.zip

zu extrahieren %Vor%

Dieser Code funktioniert für viele andere Zip-Dateien, die ich mit WinRAR erstellt habe, aber myzip.zip

Ich habe versucht, die folgenden Zeilen in Python27\Lib\zipfile.py zu kommentieren: -

%Vor%

Aber das hat nicht wirklich geholfen. Wenn ich meinen Code damit ausführe, bekomme ich einen Dump auf meiner Shell.

    
haltTm 09.10.2011, 12:55
quelle

2 Antworten

10

Korrekte ZIP-Dateien haben immer "\ x50 \ x4B \ x03 \ x04" am Anfang. Sie können testen, ob die Datei wirklich ZIP-Datei mit diesem Code ist:

%Vor%

Es wird Header der Datei gedruckt, so dass Sie überprüfen können.

UPDATE Seltsam, testzip () und alle anderen Funktionen funktionieren gut. Hast du einen solchen Code probiert?

%Vor%     
ghostmansd 09.10.2011, 17:14
quelle
2

Stellen Sie sicher, dass Sie wirklich eine ZIP-Datei öffnen, z. B. eine RAR-Datei mit der Erweiterung .zip. Richtige Zip-Dateien haben eine Kopfzeile, die in diesem Fall nicht gefunden wurde.

Das Modul zipfile kann nur Zip-Dateien öffnen. WinRAR kann auch andere Formate öffnen und ignoriert wahrscheinlich den Dateinamen und betrachtet nur die Datei selbst.

    
Petr Viktorin 09.10.2011 13:28
quelle

Tags und Links