PythonでディレクトリをZIPファイルに圧縮・解凍する方法

この記事では、Pythonを使用してディレクトリをZIPファイルに圧縮・解凍する方法を詳しく解説します。具体的なコード例とその解説、さらには応用例を3つ以上紹介します。

目次

必要なモジュール

PythonでZIPファイルの圧縮・解凍を行うには、標準ライブラリの`zipfile`モジュールを使用します。特別なインストールは必要ありません。

基本的な圧縮方法

最も簡単な圧縮の例から始めましょう。

コード例

import zipfile

# 圧縮したいディレクトリ
target_directory = "sample_directory"

# 圧縮後のZIPファイル名
zip_file_name = "sample.zip"

# ZIPファイル作成
with zipfile.ZipFile(zip_file_name, 'w') as myzip:
    for root, dirs, files in os.walk(target_directory):
        for file in files:
            myzip.write(os.path.join(root, file))

解説

このコードでは、`zipfile.ZipFile` オブジェクトを作成しています。その後、`os.walk`関数でディレクトリを再帰的に探索し、各ファイルをZIPファイルに追加しています。

基本的な解凍方法

次に、ZIPファイルを解凍する基本的な方法について見ていきましょう。

コード例

import zipfile

# 解凍するZIPファイル名
zip_file_name = "sample.zip"

# 解凍先ディレクトリ
extract_directory = "extracted_sample"

# ZIPファイル解凍
with zipfile.ZipFile(zip_file_name, 'r') as myzip:
    myzip.extractall(extract_directory)

解説

解凍も同様に`zipfile`モジュールを使用します。`ZipFile`クラスの`extractall`メソッドに解凍先ディレクトリを指定するだけです。

応用例

さらに応用した使い方をいくつか見ていきましょう。

応用例1: パスワード付きZIPファイルの作成

import zipfile

target_directory = "sample_directory"
zip_file_name = "sample_password.zip"
password = b"my_password"

with zipfile.ZipFile(zip_file_name, 'w') as myzip:
    for root, dirs, files in os.walk(target_directory):
        for file in files:
            myzip.write(os.path.join(root, file))
    myzip.setpassword(password)

応用例2: パスワード付きZIPファイルの解凍

import zipfile

zip_file_name = "sample_password.zip"
extract_directory = "extracted_sample"
password = b"my_password"

with zipfile.ZipFile(zip_file_name, 'r') as myzip:
    myzip.extractall(extract_directory, pwd=password)

応用例3: ZIPファイル内のファイル一覧取得

import zipfile

zip_file_name = "sample.zip"

with zipfile.ZipFile(zip_file_name, 'r') as myzip:
    print(myzip.namelist())

まとめ

この記事では、Pythonの`zipfile`モジュールを使用して、ディレクトリをZIPファイルに圧縮・解凍する基本的な方法から応用例までを解説しました。これらの知識を活かして、ファイルの圧縮・解凍を効率的に行いましょう。

コメント

コメントする

目次