PythonでフォルダーをZIPファイルへ圧縮する

PythonではフォルダーをZIPファイルへ圧縮することができます。

フォルダ・ファイルをZIPファイルに圧縮したり、ZIPファイルを解凍して元のフォルダに戻したりできます。

今回は、PythonでフォルダーをZIPファイルで圧縮する方法を解説します。

ZIPファイルへ圧縮する

ZIPファイルを作成する(フォルダを圧縮する)

import zipfile,os

# ZIPファイルを作成
zip = zipfile.ZipFile('C:\\pg\\圧縮ファイル.zip','w')

# 圧縮するファイルのディレクトリへ移動
os.chdir('C:\\user1\\data')

# ZIPファイルに追加
zip.write('file1.txt', compress_type=zipfile.ZIP_DEFLATED)
zip.write('プログラム一覧.docx', compress_type=zipfile.ZIP_DEFLATED)
zip.close()

 

zipfileの解説

PythonでフォルダーをZIPファイルへ圧縮するには「zipfile」モジュールを使います。ZIPファイルを作成し、フォルダーに中に含まれるファイルを1つずつZIPファイルへ書き込むという手順になります。

zipfile.ZipFileの使い方

import zipfile,os

# ZIPファイルを作成
zip = zipfile.ZipFile('C:\\pg\\圧縮ファイル.zip','w')

最初に「zipfile」をインポートします。

「zipfile.ZipFile」でZIPファイルを作成します。「zipfile.ZipFile」の第1パラメータはZIPファイルのパスです。

第2パラメータは編集モードです。

w 書き込み
r 読み取り
a 追記

圧縮するファイルを追加する

# 圧縮するファイルのディレクトリへ移動
os.chdir('C:\\user1\\data')

圧縮するファイルをフルパスで指定すると、ディレクトリ毎、圧縮ファイルの中に入ってしまいます。なので、あらかじめ圧縮するファイルのディレクトリを移動しておきます。

# ZIPファイルに追加
zip.write('file1.txt', compress_type=zipfile.ZIP_DEFLATED)
zip.write('プログラム一覧.docx', compress_type=zipfile.ZIP_DEFLATED)

zip.close()

「zip.write」でZIPファイルに追加したいファイルを指定します。「compress_type」は圧縮方式です。「compress_type=zipfile.ZIP_DEFLATED」固定で。

最後に「zip.close」で終了です。

withを使うパターン

zipファイルを扱う場合、「with」を使った方が便利です。最後の「close」が必要なく、コードがインデントするため、zipの有効範囲がわかりやすいですね。

「with」を使ったzipファイルの圧縮に変換します。

import zipfile,os

# ZIPファイルを作成
with zipfile.ZipFile('C:\\pg\\圧縮ファイル.zip','w') as zip:

    # 圧縮するファイルのディレクトリへ移動
    os.chdir('C:\\user1\\data')

    # ZIPファイルに追加
    zip.write('file1.txt', compress_type=zipfile.ZIP_DEFLATED)
    zip.write('プログラム一覧.docx', compress_type=zipfile.ZIP_DEFLATED)

コチラの書き方の方がいいかもしれません。

参考ページhttps://docs.python.jp/3/library/zipfile.html

PythonでフォルダーをZIPファイルへ圧縮することができました。

以上、PythonでフォルダーをZIPファイルへ圧縮する方法でした。

コメント