【Python】ファイルを書き出さずにzipで圧縮する方法

Python

概要

  • ファイルを書き出さずにメモリ上で圧縮する

Notes

  • zipfileとioを使用して、メモリ上でファイルを圧縮し、バイナリデータとして出力する。
import io
import zipfile

zip_stream = io.BytesIO()  

# zip_stream に zip 圧縮したデータを出力  
with zipfile.ZipFile(zip_stream, 'w', compression=zipfile.ZIP_DEFLATED) as new_zip:  
    # 'hogehoge'をfoo.csvというファイル名でZIPファイルに追加
    new_zip.writestr(f"foo.csv", 'hogehoge')  

# バイナリデータとして取得できる
# POSTするときのデータとかで使用できる
print(new_zip.getvalue())

コメント

タイトルとURLをコピーしました