У меня есть два zip-файла, оба хорошо открываются в Windows Explorer и 7-zip.
Однако, когда я открываю их с помощью модуля zipfile в Python [zipfile.ZipFile ("filex.zip")], один из них открывается, а другой выдает ошибку "BadZipfile: File is not a zip file
".
Я убедился, что последний является действительным Zip-файлом, открыв его с помощью 7-Zip и просмотрев его свойства (говорит 7Zip.ZIP). Когда я открываю файл в текстовом редакторе, первые два символа - это «PK», показывая, что это действительно zip-файл.
Я использую Python 2.5 и не знаю, как это сделать. Я пробовал как с Windows, так и с Ubuntu, и проблема существует на обеих платформах.
Обновление: Трассировка от Python 2.5.4 в Windows:
Traceback (most recent call last):
File "<module1>", line 5, in <module>
zipfile.ZipFile("c:/temp/test.zip")
File "C:\Python25\lib\zipfile.py", line 346, in init
self._GetContents()
File "C:\Python25\lib\zipfile.py", line 366, in _GetContents
self._RealGetContents()
File "C:\Python25\lib\zipfile.py", line 378, in _RealGetContents
raise BadZipfile, "File is not a zip file"
BadZipfile: File is not a zip file
Обычно, когда вызывается функция _EndRecData
для получения данных из записи «Конец центрального каталога», проверка длины комментария завершается неудачей [endrec [7] == len (comment)].
Значения местных жителей в функции _EndRecData
следующие:
END_BLOCK: 4096,
comment: '\x00',
data: '\xd6\xf6\x03\x00\x88,N8?<e\xf0q\xa8\x1cwK\x87\x0c(\x82a\xee\xc61N\'1qN\x0b\x16K-\x9d\xd57w\x0f\xa31n\xf3dN\x9e\xb1s\xffu\xd1\.....', (truncated)
endrec: ['PK\x05\x06', 0, 0, 4, 4, 268, 199515, 0],
filesize: 199806L,
fpin: <open file 'c:/temp/test.zip', mode 'rb' at 0x045D4F98>,
start: 4073