2016-11-08 3 views
1

Ich versuche, eine Zip-Datei von 1,23 GB mit zipFile Bibliothek zu extrahieren. Aber es gibt die folgenden Fehler:Extrahieren großer Dateien mit Zipfile

compression type 9 (deflate64) 

Hier ist mein Code:

zip_ref = zipfile.ZipFile(filepath, 'r') 
zip_ref.extractall(newPath) 

Es gibt Fehler bei dem Versuch, den Inhalt zu extrahieren.

Gibt es eine Möglichkeit, große Zip-Dateien mit Python zu entpacken?

Antwort

0

Dies passiert, weil diese Komprimierungsmethode nicht im Modul zipfile implementiert ist.

Einige Diskussion über das Thema ist hier: https://bugs.python.org/issue14313

Das Update eine NotImplementedError anstelle der Zugabe Unterstützung für das Kompressionsverfahren zu erhöhen war.

Lösungsvorschläge:

  • Wenn möglich, recompress die Datei Methode eines Standard deflate verwenden.
  • Verwenden Sie das subprocess Modul, um das System unzip Befehl aufzurufen, asssuming es auf Ihrem Betriebssystem installiert ist (wenn es diese Komprimierungsmethode unterstützt, bin ich ehrlich gesagt nicht sicher. Ich weiß, dass 7-zip die Methode unterstützt.).
+0

Lassen Sie mich das klarstellen. Es gibt keine Möglichkeit, diesen Fehler zu beheben, und die einzige Lösung besteht darin, die Datei erneut zu komprimieren und den Befehl 'unzip' mit dem Modul 'subprocess' zu verwenden, das anstelle von' extractall' in meinem System installiert sein kann oder nicht. –

+0

Ja, zumindest das war früher der Fall und ich habe nicht gehört, dass die Komprimierungsmethode hinzugefügt wurde. Beachten Sie, dass das Zip-Archivformat Pluggable-Komprimierungsmethoden unterstützt und nur weil Sie eine Bibliothek haben, die das Archivformat unterstützt, bedeutet dies nicht, dass es alle Algorithmen unterstützt. – Krumelur

+0

aber warum funktioniert es für kleine Dateien und nicht für große? –