Я пытаюсь написать очень простой скрипт, который подсчитывает количество записей/файлов, данных для данного ZIP-файла, для некоторых статистических данных.Доступ к .zipx с Python
Я использую библиотеку zipfile
, и я столкнулся с этой проблемой, когда библиотека, похоже, не поддерживает формат .zipx.
bash-3.1$ python zipcount.py t.zipx
Traceback (most recent call last):
File "zipcount.py", line 10, in <module>
zipCount(file)
File "zipcount.py", line 5, in zipCount
with ZipFile(file, "r") as zf:
File "c:\Python34\lib\zipfile.py", line 937, in __init__
self._RealGetContents()
File "c:\Python34\lib\zipfile.py", line 978, in _RealGetContents
raise BadZipFile("File is not a zip file")
zipfile.BadZipFile: File is not a zip file
погуглить помощи показывает, что формат zipx
не то же самое, как zip
, и поэтому, возможно, я не должен ожидать, чтобы это работало. Дальше googling, хотя и не воспитывает библиотеку, которая фактически может дело с zipx
. Поиск переполнения стека тоже не нашел.
Я не могу быть единственным человеком, который хочет манипулировать файлами zipx в python, не так ли? Какие-либо предложения?
.zipx, как представляется, использовать сжатие (хг http://kb.winzip.com/kb/entry/7). См. Здесь, как распаковать архивы xz: https://stackoverflow.com/questions/17217073/how-to-decompress-a-xz-file-which-has-multiple-folders-files-inside-in-a-singl – chown
Попытка использовать lzma на zipx, похоже, дает '_lzma.LZMAError: формат ввода не поддерживается декодером – FrobberOfBits
http://kb.winzip.com/help/help_compression.htm утверждает, что winzip будет использовать один из этих 4 методов сжатия на основе на что бы ни подумали, сделает самый маленький архив: 'bzip2',' LZMA', 'PPMd' или' XZ'. Итак, поскольку xz и lzma не работают, попробуйте bz2: https://docs.python.org/2/library/bz2.html. Также проверьте это для интерфейса python для всех 4: https://www.chilkatsoft.com/compression-python.asp – chown