2016-10-29 5 views
0

私のzipファイルの内容がどのように私はxyz.zipフォルダの内容を抽出することができエキスの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]) 

が、これは私がやったこと、それが何だったかわからない、今動作するようには思えません数日後、それは動作しました。私が受け取るエラーメッセージは

IOError: [Errno 2] No such file or directory: 'xyz.zip' 

です。助けや指導を感謝します。

答えて

1

だけZipFile.openインナージップし、新しい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())