Python の標準ライブラリである shutil
を使用すると、複数のファイルを含むディレクトリから ZIP アーカイブを簡単に作成することができます(1 ファイル単位でアーカイブに追加するファイルを細かく制御したいときは、zipfile
モジュールを使用します)。
ディレクトリを ZIP 圧縮する
ZIP ファイルの作成
shutil.make_archive 関数 を使用すると、指定したディレクトリ内のファイルを丸ごと ZIP 圧縮できます。
次の例では、src
ディレクトリ内のファイルを backup.zip
ファイルに圧縮しています。
ZIP ファイルの上書き確認をする
shutil.make_archive
関数は、すでに ZIP ファイルがある場合には、問答無用で上書き保存してしまうようです。
下記の create_zip
関数は、同名の ZIP ファイルが存在している場合に確認プロンプトを表示するようにしています。
ZIP ファイルを展開する
shutil.unpack_archive 関数 を使用すると、指定した ZIP ファイルの中身を、指定したディレクトリに展開することができます。
下記の例では、backup.zip
アーカイブ内のファイル群を dst
ディレクトリ以下に展開しています。
dst
ディレクトリが存在しない場合は、自動的に生成されます。