2016-10-29 3 views
0

ниже являются содержанием моего ZipFileраспакуйте файл внутри архива в питоне

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'] 

как я могу извлечь содержимое папки xyz.zip? после нескольких проб и ошибок, я кстати в состоянии извлечь содержимое, с помощью какой-то какой подобный код, как показано ниже:

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

, но это не похоже на работу сейчас, я не уверен, что это было, что я сделал несколько дней назад, когда это сработало. сообщение об ошибке i get is

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()) 
Смежные вопросы