【Python】shutilモジュールを使用してzip圧縮する方法

Pythonではshutilモジュールを使用して、ファイルやフォルダをzip圧縮することができます。

この記事では、Pythonのshutilモジュールを使用して、ファイルやディレクトリを簡単にzip圧縮する方法を解説します。

初心者の方でもわかりやすく、具体的なサンプルコードとともに解説していきます。

目次から探す

shutilモジュールのインポート方法

shutilモジュールは、Pythonの標準ライブラリの一部であり、ファイルやディレクトリの操作を行うための便利な機能を提供しています。

shutilモジュールを使用するには、まず以下のようにモジュールをインポートする必要があります。

import shutil

上記のコードを実行することで、shutilモジュールを使用する準備が整います。

これで、ファイルやディレクトリのコピー、移動、削除など、さまざまな操作を行うことができます。

shutilモジュールはPythonの標準ライブラリに含まれているため、追加のインストールは必要ありません。

zip圧縮の基本的な使い方

shutilモジュールを使用すると、Pythonで簡単にzip圧縮を行うことができます。

以下では、shutilモジュールを使ったzip圧縮の基本的な使い方について説明します。

単一ファイルの圧縮

単一のファイルをzip圧縮するには、shutilモジュールのmake_archive関数を使用します。

以下のサンプルコードを参考にしてください。

import shutil
# 圧縮するファイルのパス
file_path = 'path/to/file.txt'
# 圧縮ファイルの保存先ディレクトリ
output_dir = 'path/to/output'
# 圧縮ファイルの名前
output_name = 'compressed'
# zip圧縮
shutil.make_archive(output_dir + '/' + output_name, 'zip', file_path)

ディレクトリの圧縮

ディレクトリをzip圧縮する場合も、make_archive関数を使用します。

以下のサンプルコードを参考にしてください。

import shutil
# 圧縮するディレクトリのパス
dir_path = 'path/to/directory'
# 圧縮ファイルの保存先ディレクトリ
output_dir = 'path/to/output'
# 圧縮ファイルの名前
output_name = 'compressed'
# zip圧縮
shutil.make_archive(output_dir + '/' + output_name, 'zip', dir_path)

圧縮ファイルの名前を指定する方法

make_archive関数の第1引数には、圧縮ファイルの保存先となるディレクトリとファイル名を指定します。

圧縮ファイルの保存先を指定する方法

make_archive関数の第2引数には、圧縮ファイルの形式を指定します。

ここでは、’zip’を指定しています。

圧縮ファイルのパスワードを設定する方法

make_archive関数extra_args引数を使用することで、圧縮ファイルにパスワードを設定することができます。

以下のサンプルコードを参考にしてください。

import shutil
# 圧縮するファイルのパス
file_path = 'path/to/file.txt'
# 圧縮ファイルの保存先ディレクトリ
output_dir = 'path/to/output'
# 圧縮ファイルの名前
output_name = 'compressed'
# 圧縮ファイルのパスワード
password = 'password123'
# zip圧縮
shutil.make_archive(output_dir + '/' + output_name, 'zip', file_path, extra_args=['-P', password])

以上がshutilモジュールを使用してzip圧縮を行う基本的な使い方です。

次のセクションでは、zip圧縮の応用テクニックについて説明します。

zip圧縮の応用テクニック

shutilモジュールを使用してzipファイルを作成するだけでなく、zipファイルの中身を確認したり、解凍したり、追加したり、特定のファイルを取り出したりすることもできます。

以下では、それぞれの応用テクニックについて説明します。

圧縮ファイルの中身を確認する方法

zipファイルの中身を確認するには、zipfileモジュールを使用します。

具体的な手順は以下の通りです。

import zipfile
# zipファイルのパスを指定
zip_path = 'sample.zip'
# zipファイルを開く
with zipfile.ZipFile(zip_path, 'r') as zip_file:
    # 中身のファイル名を取得
    file_list = zip_file.namelist()
# 中身のファイル名を表示
for file_name in file_list:
    print(file_name)

上記のコードでは、zipfile.ZipFileクラスを使用してzipファイルを開き、namelist()メソッドを使用して中身のファイル名を取得しています。

圧縮ファイルを解凍する方法

zipファイルを解凍するには、zipfileモジュールを使用します。

具体的な手順は以下の通りです。

import zipfile
# zipファイルのパスを指定
zip_path = 'sample.zip'
# 解凍先のディレクトリを指定
extract_dir = 'extracted_files'
# zipファイルを開く
with zipfile.ZipFile(zip_path, 'r') as zip_file:
    # 解凍先のディレクトリを作成
    zip_file.extractall(extract_dir)
print('解凍が完了しました。')

上記のコードでは、zipfile.ZipFileクラスを使用してzipファイルを開き、extractall()メソッドを使用して解凍先のディレクトリにファイルを解凍しています。

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

既存のzipファイルに新しいファイルを追加するには、zipfileモジュールを使用します。

具体的な手順は以下の通りです。

import zipfile
# zipファイルのパスを指定
zip_path = 'sample.zip'
# 追加するファイルのパスを指定
file_to_add = 'new_file.txt'
# zipファイルを開く
with zipfile.ZipFile(zip_path, 'a') as zip_file:
    # ファイルを追加
    zip_file.write(file_to_add)
print('ファイルの追加が完了しました。')

上記のコードでは、zipfile.ZipFileクラスを使用してzipファイルを開き、write()メソッドを使用して新しいファイルを追加しています。

圧縮ファイルから特定のファイルを取り出す方法

zipファイルから特定のファイルを取り出すには、zipfileモジュールを使用します。

具体的な手順は以下の通りです。

import zipfile
# zipファイルのパスを指定
zip_path = 'sample.zip'
# 取り出すファイルの名前を指定
file_to_extract = 'file.txt'
# zipファイルを開く
with zipfile.ZipFile(zip_path, 'r') as zip_file:
    # ファイルを取り出す
    zip_file.extract(file_to_extract)
print('ファイルの取り出しが完了しました。')

上記のコードでは、zipfile.ZipFileクラスを使用してzipファイルを開き、extract()メソッドを使用して特定のファイルを取り出しています。

以上が、shutilモジュールを使用してzipファイルの応用テクニックを実現する方法です。

これらのテクニックを活用することで、より柔軟な操作が可能となります。

1 2 3
目次から探す