使用Python访问.zipx

时间:2015-04-24 15:53:57

标签: python zipfile

对于某些统计信息,我正在尝试编写一个非常简单的脚本来计算给定ZIP文件的条目/文件数。

我正在使用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

Google搜索帮助显示zipx格式与zip不同,所以也许我不应该期望这样做。进一步的谷歌搜索无法打开一个实际可以处理zipx的库。搜索堆栈溢出也没有找到太多。

我不可能是唯一一个想在python中操作zipx文件的人,对吗?有什么建议吗?

2 个答案:

答案 0 :(得分:1)

chilkat可能对此有用。这是 不是免费图书馆 ,但有30天的试用期。以下是http://www.example-code.com/python/ppmd_compress_file.asp的示例:

 import numpy as np, h5py

 file = h5py.File('data.mat','r')
 for "all variables in mat file"
     ...fill numpy array
 end

API文档:http://www.chilkatsoft.com/refdoc/pythonCkCompressionRef.html

答案 1 :(得分:0)

没有直接的python包可解压缩python中的zipx文件。 因此,一种简单的解压缩方法是使用子进程和winzip应用程序。请找到以下代码。

import subprocess

command = "C:\Program Files\WinZip\wzunzip.exe" "D:\Downloads\hello.zipx" "D:\unzip_location"

subprocess.run(command, shell=True, timeout=120)