カテゴリ: Python 更新日: 2025/12/18

Pythonでzip圧縮・解凍する方法!zipfileモジュール初心者向け解説

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

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

生徒

「先生、複数のファイルをまとめて圧縮したり解凍したりしたいです。」

先生

「それならPythonのzipfileモジュールを使うと簡単にできます。圧縮ファイルを作ったり、開いたりするための便利な機能が揃っています。」

生徒

「zipfileモジュールって難しそうですが、初心者でも使えますか?」

先生

「はい、基本的な使い方を覚えれば簡単です。ファイルを圧縮する作業は、複数の紙を一つの封筒にまとめるイメージです。」

生徒

「なるほど!では具体的に教えてください。」

先生

「それでは、順を追って説明していきます。」

1. zipfileモジュールとは?

1. zipfileモジュールとは?
1. zipfileモジュールとは?

Pythonには標準でzipfileモジュールが用意されており、ZIP形式の圧縮・解凍を簡単に行えます。ZIPファイルは複数のファイルやフォルダをまとめて圧縮できる形式で、パソコン内の整理やメール送信に便利です。

2. ZIPファイルを作る(圧縮する)

2. ZIPファイルを作る(圧縮する)
2. ZIPファイルを作る(圧縮する)

ファイルを圧縮するときは、zipfile.ZipFileクラスを使います。新しいZIPファイルを作る場合はモードを'w'にします。


import zipfile

with zipfile.ZipFile("sample.zip", "w") as myzip:
    myzip.write("file1.txt")
    myzip.write("file2.txt")

ポイント:

  • ZipFile("sample.zip", "w")で新しいZIPファイルを作成
  • write()で圧縮したいファイルを追加
  • 複数ファイルを一度にまとめて圧縮できる

3. ZIPファイルを開く(解凍する)

3. ZIPファイルを開く(解凍する)
3. ZIPファイルを開く(解凍する)

ZIPファイルを解凍する場合は、モードを'r'にします。extractall()で中身を全て展開できます。


import zipfile

with zipfile.ZipFile("sample.zip", "r") as myzip:
    myzip.extractall("extracted_files")

ポイント:

  • extractall()で指定フォルダに解凍
  • 解凍先フォルダが存在しない場合は、自動で作ると便利
  • 特定のファイルだけを解凍することも可能です

4. ZIPファイル内の一覧を確認する

4. ZIPファイル内の一覧を確認する
4. ZIPファイル内の一覧を確認する

圧縮ファイルの中身を確認したいときはnamelist()を使います。


import zipfile

with zipfile.ZipFile("sample.zip", "r") as myzip:
    print("ZIPファイル内の一覧:", myzip.namelist())

ZIPファイル内の一覧: ['file1.txt', 'file2.txt']

5. 圧縮時にファイル名を変更する

5. 圧縮時にファイル名を変更する
5. 圧縮時にファイル名を変更する

圧縮時にZIP内でのファイル名を変えたい場合は、arcnameパラメータを使います。


import zipfile

with zipfile.ZipFile("sample.zip", "w") as myzip:
    myzip.write("file1.txt", arcname="new_name.txt")

ポイント:

  • 圧縮後のZIP内の名前を自由に設定可能
  • 整理やフォルダ構造を維持したいときに便利

6. 実用例:複数ファイルをまとめて圧縮

6. 実用例:複数ファイルをまとめて圧縮
6. 実用例:複数ファイルをまとめて圧縮

import zipfile
import os

files_to_zip = ["file1.txt", "file2.txt", "file3.txt"]

with zipfile.ZipFile("archive.zip", "w") as myzip:
    for file in files_to_zip:
        if os.path.exists(file):
            myzip.write(file)
        else:
            print(file, "が見つかりません")

file1.txt が見つかりません

ポイント:

  • 存在しないファイルをチェックしてエラー回避
  • 大量のファイルを一括圧縮する際に便利

7. 注意点

7. 注意点
7. 注意点
  • zipfileモジュールはZIP形式専用です。他の圧縮形式は対応していません
  • 大きなファイルを圧縮する場合はメモリ使用量に注意
  • パスワード付きZIPはPython標準では対応が限定的なので、別途ライブラリが必要
カテゴリの一覧へ
新着記事
New1
Flask
Flaskで非同期フォーム送信(Ajax POST)を実装する方法を解説!初心者でもわかるステップ解説
New2
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
New3
Python
PythonでMySQLに接続する方法!pymysqlの基本的な使い方
New4
Flask
FlaskのURLルールとは?ルーティングの基本と動的URLの作り方を解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.3
Java&Spring記事人気No3
Python
Pythonでリストの要素を検索・取得する方法!index()やin演算子の活用法
No.4
Java&Spring記事人気No4
Python
Pythonプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.5
Java&Spring記事人気No5
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.6
Java&Spring記事人気No6
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.7
Java&Spring記事人気No7
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.8
Java&Spring記事人気No8
Flask
Flaskでクラウド上のメッセージキュー(SQS/PubSub)を扱う完全ガイド!初心者向け解説