- Published on
ファイルを書き出さずにzipで圧縮する方法
- Authors
- Name
- snuow
- @snuow_w
概要
- ファイルを書き出さずにメモリ上で圧縮する
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())