2014-09-01 4 views
5

Ich versuche, ein Python-Skript zu schreiben, die eine Zip-Datei extrahieren sollte:Python ZipFile Modul extrahiert Passwort geschützt Reißverschlüsse langsam

Verpflegung: Beagle-Bone schwarz ~ 1GHz Arm-Cortex-a8, debian sid Zipfile: /home/milo/my.zip, ~ 8 MB

>>> from zipfile import ZipFile 
>>> zip = ZipFile("/home/milo/my.zip") 
>>> zip.extractall(pwd="tst") 

andere Lösungen mit Öffnen und Lesen-> Schreiben der Zipfile und Extrahieren sogar bestimmte Datei haben den gleichen Effekt. Extraktion dauert ca. 3-4 Minuten.

Das Extrahieren der gleichen Datei mit nur unzip-Tool dauert weniger als 2 Sekunden.

Weiß jemand, was ist mit meinem Code Wondergg, oder sogar mit Python zipfile lib ??

Dank Ajava

+0

Beeinflusst dies die Geschwindigkeit des Extrahierens, ob der Zip passwortgeschützt ist oder nicht? –

+0

nein es nicht, wenn die gleiche zipfile ist nicht passwortgeschützt, der gleiche Code extrahiert alles so schnell wie unzip tun !!!!! –

+1

Sogar auf meinem eigenen PC (i5, 8GB RAM, Debian Wheezy) das Extrahieren einer 30 MB passwortgeschützten ZIP-Datei durch Python dauert mehr als 1 min !! –

Antwort

4

Dies scheint in Python 2.7 ein dokumentiertes Problem mit dem ZipFile Modul zu sein. Wenn man sich die documentation for ZipFile aussehen, erwähnt es klar:

Decryption extrem langsam ist, wie es in der nativen Python implementiert ist statt C.

Wenn Sie schnellere Leistung benötigen, können Sie entweder eine aufrufen ein externes Programm (wie zip oder 7zip) aus Ihrem Code, oder stellen Sie sicher, dass die ZIP-Dateien, mit denen Sie arbeiten, nicht passwortgeschützt sind.

+0

Ich habe das Dokument gelesen, habe aber diese Zeile übersehen !! Vielen Dank –

Verwandte Themen