我正在寻找一种在Python中解压嵌套的zip文件的方法。例如,考虑以下结构(为方便起见,使用虚构名称):
- 文件夹
- ZipfileA.zip
- ZipfileA1.zip
- ZipfileA2.zip
- ZipfileB.zip
- ZipfileB1.zip
- ZipfileB2.zip
- ZipfileA.zip
......等等。我试图访问第二个zip文件中包含的文本文件。我绝对不想提取所有内容,因为数量巨大会使计算机崩溃(第一层有几百个zip文件,第二层每个zip文件都有近10,000个zip文件)。
我一直在尝试使用 'zipfile' 模块-我能够打开第一层的zip文件。 例如:
zipfile_obj = zipfile.ZipFile("/Folder/ZipfileA.zip")
next_layer_zip = zipfile_obj.open("ZipfileA1.zip")
然而,这会返回一个 "ZipExtFile" 实例(不是文件或 zip 文件实例) - 我无法继续打开这种特定的数据类型。所以我做不到这一点:
data = next_layer_zip.open(data.txt)
然而我可以通过以下方式“读取”这个zip文件:
next_layer_zip.read()
但是这完全没有用!(即只能读取压缩数据/乱码)。
有人有任何想法吗(不使用 ZipFile.extract)?
我找到了这个 http://pypi.python.org/pypi/zip_open/ - 它看起来正好符合我的要求,但它对我来说似乎无法工作(对于我正在尝试处理的文件,使用该模块仍然出现“[Errno 2] No such file or directory:”错误)。
非常感谢任何想法! 提前致谢。