Mauvaise magie numéro d'erreur avec ZipFile module en Python
J'utilise Python 2.7 sous Windows 7 (64 bits).
Lorsque j'essaie de décompresser un fichier zip avec ZipFile module j'obtiens l'erreur suivante:-
Traceback (most recent call last):
File "unzip.py", line 8, in <module>
z.extract(name)
File "C:\Python27\lib\zipfile.py", line 950, in extract
return self._extract_member(member, path, pwd)
File "C:\Python27\lib\zipfile.py", line 993, in _extract_member
source = self.open(member, pwd=pwd)
File "C:\Python27\lib\zipfile.py", line 897, in open
raise BadZipfile, "Bad magic number for file header"
zipfile.BadZipfile: Bad magic number for file header
WinRAR pour extraire le fichier que je suis en train d'extraire l'amende juste.
Voici le code que j'ai utilisé pour extraire des fichiers à partir de myzip.zip
from zipfile import ZipFile
z = ZipFile('myzip.zip') //myzip.zip contains just one file, a password protected pdf
for name in z.namelist():
z.extract(name)
Ce code fonctionne très bien pour de nombreux autres fichiers zip que j'ai créé à l'aide de WinRAR, mais myzip.zip
J'ai essayé de commenter les lignes suivantes dans Python27\Lib\zipfile.py
:-
if fheader[0:4] != stringFileHeader:
raise BadZipfile, "Bad magic number for file header"
Mais cela n'a pas vraiment aider. L'exécution de mon code avec ce en effet, je reçois de vidage sur ma coquille.
OriginalL'auteur haltTm | 2011-10-09
Vous devez vous connecter pour publier un commentaire.
Corriger les fichiers ZIP ont toujours "\x50\x4B\x03\x04" au début. Vous pouvez tester si le fichier est vraiment fichier ZIP avec ce code:
Il va imprimer l'en-tête de fichier, de sorte que vous pouvez vérifier.
Mise à JOUR
Étrange, testzip() et toutes les autres fonctions du bon travail. Aviez-vous essayé ce code?
PK♥♦
en sortie.Hm. Pourriez-vous mettre votre fichier sur n'importe quel serveur pour que je puisse le regarder et d'essayer de l'ouvrir?
Si ce n'est pas une information, bien sûr.
Veuillez trouver le zip ici: goo.gl/zHNWH
Python zipfile supporte actuellement que de DÉGONFLER la méthode. Il semble que vous avez créé votre fichier avec WinRar en utilisant une autre méthode, de sorte zipfile ne peut lire le fichier, mais pas de l'extraire.
OriginalL'auteur ghostmansd
Assurez-vous que vous êtes vraiment l'ouverture d'un fichier ZIP, pas, par exemple, un fichier RAR nommé avec un .extension zip. Bon zip les fichiers d'en-tête, qui n'a pas été trouvée dans ce cas.
La
zipfile
module ne peut ouvrir des fichiers zip. WinRAR peut aussi ouvrir d'autres formats, et il est probable ignore le nom de fichier et ne regarde que le fichier lui-même.OriginalL'auteur Petr Viktorin