Я использую Python 2.7 в Windows 7 (64 бит).
Когда я пытаюсь распаковать zip-файл с помощью модуля ZipFile, я получаю следующую ошибку: -
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 может извлечь файл, который я пытаюсь извлечь, просто отлично.
Вот код, который я использовал для извлечения файлов из 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)
Этот код отлично работает для многих других zip-файлов, которые я создал с помощью WinRAR, но myzip.zip
Я попытался прокомментировать следующие строки в Python27\Lib\zipfile.py
: -
if fheader[0:4] != stringFileHeader:
raise BadZipfile, "Bad magic number for file header"
Но это не очень помогло. Запустив мой код с этим эффектом, я получаю дамп на моей оболочке.