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 と同じです。