разархивация файла приводит к “BadZipFile: Файл не является zip-файлом”

У меня есть два 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 и проблема существуют на обеих платформах.

Обновление: Traceback из 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 (комментарий)].

Значения местных жителей в _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
37
задан Levon 27 July 2012 в 03:35
поделиться

2 ответа

Показать полную трассировку, полученную от Python - это может дать намек на то, в чем заключается конкретная проблема. Без ответа: Какое программное обеспечение создало плохой файл и на какой платформе?

Обновление: Traceback указывает на наличие проблемы с обнаружением записи «Конец центрального каталога» в файле - см. Функцию _EndRecData, начиная со строки 128 из C: \ Python25 \ Lib \ zipfile.py

Предложения:
(1) Проследите указанную выше функцию
(2) Попробуйте на последней версии Python
(3) Ответьте на вопрос выше.
(4) Прочтите это и все остальное, найденное google («BadZipfile: файл не является zip-файлом») , что кажется относящимся к делу

1
ответ дан 27 November 2019 в 05:02
поделиться

Пробовали ли вы использовать более новый python, или, если это слишком сложно, просто более новый zipfile.py? Я успешно использовал копию zipfile.py из Python 2.6.2 (последней на тот момент) с Python 2.5, чтобы открыть некоторые zip-файлы, которые не поддерживались модулем zipfile Py2.5.

-1
ответ дан 27 November 2019 в 05:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: