在python中的zip文件中提取zip文件

时间:2016-10-29 00:41:11

标签: python zipfile

下面是我的zipfile的内容

{'key1': {'subkey0': 'value 0', 'subkey1': 'value 1'},
 'key2': {'subkey0': 'value 2', 'subkey1': 'value 3'}}

如何提取xyz.zip文件夹的内容? 经过一些试验和错误,我偶然能够提取内容,通过一些类似的代码如下:

import pandas, zipfile, requests, lxml
from io import BytesIO

r  = requests.get('someurl')
z = zipfile.ZipFile(BytesIO(r.contents))
z.namelist()
Out[42]: 
['abc.csv',
  xyz.zip']

但现在这似乎不起作用,我不确定几天后我做了什么,当它确实有效。我得到的错误信息是

zz = zipfile.ZipFile(z.namelist()[1])

感谢任何帮助或指导。

1 个答案:

答案 0 :(得分:1)

只需ZipFile.open内部zip,然后使用它来构建新的ZipFile对象:

with zipfile.ZipFile(BytesIO(r.contents)) as z:
    with z.open(z.namelist()[1]) as inner_zip:
        with zipfile.ZipFile(inner_zip) as inner:
            print(inner.namelist())