【Python】ディレクトリを丸ごとzip圧縮する方法を解説

この記事では、Pythonに標準で含まれているzipfileモジュールを使ってディレクトリを丸ごとzip圧縮する方法を解説します。

初心者の方でもわかりやすく、具体的な手順とサンプルコードを通じて、ディレクトリを簡単にzipファイルに圧縮する方法を学ぶことができるでしょう。

目次から探す

Pythonのzipfileモジュール

Pythonのzipfileモジュールは、ディレクトリを丸ごとzip圧縮するための便利なツールです。

このモジュールを使用することで、Pythonプログラムから簡単にディレクトリをzipファイルに圧縮することができます。

ディレクトリをzip圧縮する手順

ディレクトリを丸ごとzip圧縮するためには、Pythonのzipfileモジュールを使用します。

以下では、具体的な手順を解説します。

ディレクトリのパスを指定する

まず、圧縮したいディレクトリのパスを指定します。

例えば、/path/to/directoryというディレクトリを圧縮したい場合、以下のようにパスを指定します。

import zipfile
directory_path = "/path/to/directory"

zipファイルを作成する

次に、zipファイルを作成します。

zipfile.ZipFile()関数を使用して、新しいzipファイルを作成します。

zip_file = zipfile.ZipFile("compressed.zip", "w")

上記の例では、compressed.zipという名前のzipファイルを作成しています。

ディレクトリ内のファイルをzipに追加する

作成したzipファイルに、ディレクトリ内のファイルを追加します。

zip_file.write()関数を使用して、ファイルをzipに追加します。

for root, dirs, files in os.walk(directory_path):
    for file in files:
        file_path = os.path.join(root, file)
        zip_file.write(file_path)

osモジュールを使用しているので、実用する際はimport osを忘れないようにしてください。

上記の例では、os.walk()関数を使用してディレクトリ内のファイルを再帰的に取得し、zip_file.write()関数でファイルをzipに追加しています。

zipファイルを閉じる

最後に、zipファイルを閉じます。

zip_file.close()関数を使用して、作成したzipファイルを閉じます。

zip_file.close()

これで、ディレクトリを丸ごとzip圧縮する手順が完了しました。

以上の手順を実行することで、指定したディレクトリ内のファイルがすべてzipファイルに圧縮されます。

import zipfile, os
directory_path = "/path/to/directory"

zip_file = zipfile.ZipFile("compressed.zip", "w")

for root, dirs, files in os.walk(directory_path):
    for file in files:
        file_path = os.path.join(root, file)
        zip_file.write(file_path)
zip_file.close()
		

目次から探す