Python でネストされた zip ファイルを解凍する方法を探しています。たとえば、次の構造を考えてみましょう (わかりやすくするために架空の名前を使用しています)。
- フォルダ
- ZipfileA.zip
- ZipfileA1.zip
- ZipfileA2.zip
- ZipfileB.zip
- ZipfileB1.zip
- ZipfileB2.zip
- ZipfileA.zip
...等。2 番目の zip 内にあるテキスト ファイルにアクセスしようとしています。せん断数がコンピューターをクラッシュさせるため、すべてを抽出したくはありません (最初のレイヤーには数百の zip があり、2 番目のレイヤーには (zip ごとに) ほぼ 10,000 の zip があります)。
「zipfile」モジュールをいじってみました - 第 1 レベルの 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:」を取得し続けます)。
どんなアイデアでも大歓迎です!! 前もって感謝します