Распаковать вложенные zip-файлы в python

Я ищу способ распаковать вложенные zip-файлы в python. Например, рассмотрим следующую структуру (гипотетических имен для простоты):

  • Папка
    • ZipfileA.zip
      • ZipfileA1.zip
      • ZipfileA2.zip
    • ZipfileB.zip
      • ZipfileB1.zip
      • ZipfileB2.zip

...и т.д. Я пытаюсь получить доступ к текстовым файлам, которые находятся во втором почтовом индексе. Я, конечно, не хочу извлекать все, так как числа сдвига могут привести к краху компьютера (— в первом слое несколько сотен zip-файлов, а во втором — почти 10 000 (на zip-архив )).

Я играл с модулем 'zipfile' -. Я могу открыть 1-й уровень 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()

Но это совершенно бесполезно! (т.е. может читать только сжатые данные/goobledigook ).

У кого-нибудь есть идеи, как мне это сделать(безиспользуя ZipFile.extract )??

Я наткнулся на это,http://pypi.python.org/pypi/zip_open/-который выглядит именно так, как я хочу, но, похоже, это не работает для меня. (продолжайте получать «[Errno 2] Нет такого файла или каталога :» для файлов, которые я пытаюсь обработать, используя этот модуль ).

Любые идеи будут высоко оценены!! Заранее спасибо

9
задан djmac 13 August 2012 в 08:20
поделиться