環境設定 数値 文字列 正規表現 リスト タプル 集合 辞書 ループ 関数 クラス データクラス 時間 パス ファイル スクレイピング その他

Python の zipfile で zip ファイルを作る(一つまたは複数個のファイルを圧縮する)

最終更新日 2022.11.20

Python で zip ファイルを作るには with 文で zipfile.ZipFile を使います。

import zipfile

with zipfile.ZipFile('./test.zip', 'w', compression=zipfile.ZIP_DEFLATED) as z:
    z.write('./test.csv')
    z.write('./test.json')

上のコードはプログラム・ファイルと同じ階層にある test.csv と test.json をまとめて test.zip に圧縮しています。./ はカレント・ディレクトリを意味します。

ファイルに書きこみと同じように with 文で write します。圧縮したいファイルの分だけ write しましょう。

プログラムを実行すると test.zip ができます。これを展開すると test というディレクトリができます。中に test.csv と test.json があります。つまりもとのファイルと同じものが入っています。ファイル名を変えたいときは write の第二引数に展開後のファイル名を入れます。

import zipfile

with zipfile.ZipFile('./test.zip', 'w', compression=zipfile.ZIP_DEFLATED) as z:
    z.write('./test.csv', 'a.csv')
    z.write('./test.json', 'b.json')

こうすると test.zip を展開したディレクトリに a.csv が入りますが、a.csv の中身はもとの test.csv と同じです。