Python インメモリ zip ライブラリ 質問する

Python インメモリ zip ライブラリ 質問する

実際のディスク ファイルを使用せずに、メモリ内の zip アーカイブを操作できる Python ライブラリはありますか?

ZipFile ライブラリでは、アーカイブを更新できません。唯一の方法は、ディレクトリに抽出し、変更を加えて、そのディレクトリから新しい zip を作成することのようです。zip アーカイブをディスク アクセスなしで変更したいのですが、ダウンロードして変更し、再度アップロードするので、保存する理由がありません。

Java の ZipInputStream/ZipOutputStream に似たものでも問題ありませんが、ディスク アクセスを回避するインターフェイスであれば何でもかまいません。

ベストアンサー1

パイソン3

import io
import zipfile

zip_buffer = io.BytesIO()

with zipfile.ZipFile(zip_buffer, "a", zipfile.ZIP_DEFLATED, False) as zip_file:
    for file_name, data in [('1.txt', io.BytesIO(b'111')),
                            ('2.txt', io.BytesIO(b'222'))]:
        zip_file.writestr(file_name, data.getvalue())

with open('C:/1.zip', 'wb') as f:
    f.write(zip_buffer.getvalue())

おすすめ記事