【发布时间】:2012-08-13 08:20:28
【问题描述】:
我正在寻找一种在 python 中解压缩嵌套 zip 文件的方法。例如,考虑以下结构(为方便起见,假设名称):
- 文件夹
- ZipfileA.zip
- ZipfileA1.zip
- ZipfileA2.zip
- ZipfileB.zip
- ZipfileB1.zip
- ZipfileB2.zip
- ZipfileA.zip
...等等。我正在尝试访问第二个 zip 中的文本文件。我当然不想提取所有内容,因为剪切数字会使计算机崩溃(第一层有几百个拉链,第二层有近 10,000 个拉链(每个拉链))。
我一直在使用“zipfile”模块——我能够打开第一级 zipfile。例如:
zipfile_obj = zipfile.ZipFile("/Folder/ZipfileA.zip")
next_layer_zip = zipfile_obj.open("ZipfileA1.zip")
但是,这会返回一个“ZipExtFile”实例(不是文件或 zipfile 实例)——然后我无法继续打开这个特定的数据类型。我不能这样做:
data = next_layer_zip.open(data.txt)
但是,我可以通过以下方式“读取”这个 zip 文件:
next_layer_zip.read()
但这完全没用! (即只能读取压缩数据/goobledigook)。
有没有人对我如何解决这个问题有任何想法(没有使用 ZipFile.extract)?
我遇到了这个,http://pypi.python.org/pypi/zip_open/ - 它看起来完全符合我的要求,但它似乎对我不起作用。 (对于我正在尝试处理的文件,使用该模块继续获取“[Errno 2] No such file or directory:”)。
任何想法将不胜感激!提前致谢
【问题讨论】: