カテゴリ: Python 更新日: 2025/10/21

Pythonでzip圧縮・解凍する方法を徹底解説!初心者でもわかるzipfileモジュールの使い方

Pythonでzip圧縮・解凍する方法(zipfileモジュールの基本)
Pythonでzip圧縮・解凍する方法(zipfileモジュールの基本)

先生と生徒の会話形式で理解しよう

生徒

「パソコンにあるフォルダやファイルをPythonでまとめて圧縮したり、逆に解凍したりすることってできますか?」

先生

「もちろんできますよ。Pythonにはzipfileというモジュールがあって、それを使えばzipファイルを簡単に扱えます。」

生徒

「初心者でも使いこなせますか?操作が難しそうに感じます…」

先生

「大丈夫。順番に丁寧に説明するので、パソコン初心者の方でも安心してください。では、Pythonでzipファイルを扱う基本から見ていきましょう。」

-

1. zipファイルとは?まずは意味を知ろう

1. zipファイルとは?まずは意味を知ろう
1. zipファイルとは?まずは意味を知ろう

zip(ジップ)ファイルとは、複数のファイルやフォルダを一つにまとめて、サイズを小さく圧縮したファイルのことです。よく「.zip」で終わるファイルを見かけたことがあると思います。例えば、たくさんの写真を友達に送るとき、1枚ずつ送るよりもzipファイルにまとめた方が便利で早いですよね。

このように、zipファイルは「圧縮(あっしゅく)」や「まとめる」目的で使われます。

2. Pythonでzipファイルを扱うには?zipfileモジュールの基本

2. Pythonでzipファイルを扱うには?zipfileモジュールの基本
2. Pythonでzipファイルを扱うには?zipfileモジュールの基本

Pythonには、zipファイルを扱うための「zipfileモジュール」が標準で用意されています。標準(ひょうじゅん)とは、特別な準備やインストールをしなくても最初から使える機能のことです。

まずは簡単なサンプルで、「ファイルを圧縮する」方法を見てみましょう。

3. Pythonでファイルをzip圧縮する方法

3. Pythonでファイルをzip圧縮する方法
3. Pythonでファイルをzip圧縮する方法

以下のコードでは、"example.txt"というファイルを"archive.zip"という名前で圧縮しています。


import zipfile

# 圧縮したいファイルとzipファイルの名前を指定
with zipfile.ZipFile('archive.zip', 'w') as zipf:
    zipf.write('example.txt')

write()は、zipファイルの中にファイルを追加する命令です。'w'は「新しく作るモード」です。

4. フォルダごとzip圧縮する方法(再帰的に圧縮)

4. フォルダごとzip圧縮する方法(再帰的に圧縮)
4. フォルダごとzip圧縮する方法(再帰的に圧縮)

フォルダの中のすべてのファイルをまとめて圧縮するには、Pythonのosモジュールを組み合わせて使います。


import zipfile
import os

folder_path = 'my_folder'
zip_path = 'my_folder.zip'

with zipfile.ZipFile(zip_path, 'w') as zipf:
    for foldername, subfolders, filenames in os.walk(folder_path):
        for filename in filenames:
            filepath = os.path.join(foldername, filename)
            zipf.write(filepath)

os.walk()は、フォルダの中をすべて調べる関数です。これを使えば、サブフォルダ(フォルダの中のフォルダ)も含めてまとめて圧縮できます。

-

5. Pythonでzipファイルを解凍する方法

5. Pythonでzipファイルを解凍する方法
5. Pythonでzipファイルを解凍する方法

今度は、逆にzipファイルを「解凍(かいとう)」する方法を紹介します。解凍とは、zipファイルを元の状態に戻すことです。


import zipfile

with zipfile.ZipFile('archive.zip', 'r') as zipf:
    zipf.extractall('output_folder')

extractall()は、zipファイルの中身をすべて取り出してくれます。'output_folder'という名前のフォルダに解凍されます。

6. zipfileモジュールのモード一覧と注意点

6. zipfileモジュールのモード一覧と注意点
6. zipfileモジュールのモード一覧と注意点

zipfile.ZipFile()では、以下のようなモードを指定できます。

  • 'r':読み込み専用(解凍に使う)
  • 'w':書き込み専用(新規作成、上書きされる)
  • 'a':追記(すでにあるzipファイルに追加)

zipファイルが存在する状態で'w'モードを使うと、中身が上書きされて消えてしまうので注意しましょう。

7. zip圧縮・解凍の実行結果例

7. zip圧縮・解凍の実行結果例
7. zip圧縮・解凍の実行結果例

次のような出力結果が表示されることはありませんが、圧縮や解凍が成功すればフォルダ内にzipファイルや解凍されたファイルが作られているはずです。ターミナルやコマンドプロンプトで確認してみてください。


    archive.zip(圧縮ファイル)が作成されました。
    output_folder(解凍先フォルダ)が作成されました。

8. よくあるエラーと解決法

8. よくあるエラーと解決法
8. よくあるエラーと解決法

パソコン初心者の方でも安心できるよう、よくあるエラーとその対処法を紹介します。

  • ファイルが見つからない:
    指定したファイル名が間違っている場合に発生します。ファイルの場所と名前を正しく書きましょう。
  • PermissionError(パーミッションエラー):
    ファイルやフォルダへのアクセス権がないときに出ます。ファイルを開いたままにしていないか確認してください。
  • UnicodeEncodeError:
    ファイル名に日本語が含まれていると、エラーになることがあります。なるべく半角英数字を使いましょう。

9. 実用例:写真をまとめて圧縮してメール送信

9. 実用例:写真をまとめて圧縮してメール送信
9. 実用例:写真をまとめて圧縮してメール送信

たとえば、スマホで撮った写真をパソコンに移して、10枚を一つのzipファイルにまとめてメールで送るときに便利です。

以下のようなイメージです。


import zipfile

with zipfile.ZipFile('photos.zip', 'w') as zipf:
    zipf.write('photo1.jpg')
    zipf.write('photo2.jpg')
    zipf.write('photo3.jpg')

このように、Pythonを使えば誰でも簡単にzip圧縮や解凍ができます。難しい操作は不要です。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
Pythonで文字列をリストに変換する方法!split()とjoin()の使い方
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
PHPでメールフォームを作る方法を徹底解説!初心者向けにmail関数とPHPMailerの使い方も紹介
人気記事
No.1
PHP&Python記事人気No1
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
PHP&Python記事人気No2
Pythonのリストを辞書に変換する方法(dict() / zip())
No.3
PHP&Python記事人気No3
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.4
PHP&Python記事人気No4
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
-