この記事では、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ファイルに圧縮・解凍する基本的な方法から応用例までを解説しました。これらの知識を活かして、ファイルの圧縮・解凍を効率的に行いましょう。
コメント