【Python】zip形式に圧縮する方法

この記事では、Pythonの標準ライブラリであるzipfileモジュールを使ったファイルの圧縮方法と、外部ライブラリであるpyzipperを使ったzip形式の操作方法について解説します。

目次から探す

Pythonの標準ライブラリを使ったzip圧縮方法

Pythonでは、標準ライブラリのzipfileモジュールを使用することで、簡単にファイルやフォルダをzip形式で圧縮することができます。

この記事では、zipfileモジュールの使い方や圧縮のオプションについて解説します。

zipfileモジュールの概要

zipfileモジュールは、zip形式のアーカイブファイルを作成・操作するための機能を提供しています。

このモジュールを使用することで、Pythonプログラムから簡単にzipファイルを作成したり、既存のzipファイルを解凍したりすることができます。

zipfileモジュールで圧縮する

zipfileモジュールを使用してファイルやフォルダを圧縮するには、以下の手順を実行します。

  1. zipfileモジュールをインポートする
  2. 圧縮するファイルやフォルダのパスを指定する
  3. 圧縮後のzipファイルのパスを指定する
  4. ZipFileオブジェクトを作成し、write()メソッドを使用してファイルやフォルダを圧縮する
  5. ZipFileオブジェクトをクローズする

以下に、ファイルを圧縮する例を示します。


import zipfile
def compress_file(file_path, zip_path):
    with zipfile.ZipFile(zip_path, 'w') as zipf:
        zipf.write(file_path)
# ファイルを圧縮する
compress_file('sample.txt', 'sample.zip')

上記の例では、sample.txtというファイルをsample.zipという名前のzipファイルに圧縮しています。

ZipFileオブジェクトを作成する際に、第1引数にzipファイルのパス、第2引数にモードを指定します。

モードには、'w'を指定することで新規にzipファイルを作成することができます。

zipファイルの圧縮のオプション

zipfileモジュールでは、圧縮時にさまざまなオプションを指定することができます。

以下に代表的なオプションを紹介します。

  • compression: 圧縮の種類を指定します。

デフォルトはZIP_STOREDで、圧縮を行わずにファイルを格納します。

ZIP_DEFLATED ZIP_BZIP2 ZIP_LZMAを指定すると、データを圧縮して格納します。

データを圧縮して容量を小さくしたい場合は、必ずzipfile.ZipFile(zip_path, 'w', compression=zipfile.ZIP_DEFLATEDのようにcompressionを指定するようにしましょう。

  • compresslevel: 圧縮レベルを指定します。

0から9の範囲で指定できます。

0は無圧縮、9は最大圧縮です。

以下に、オプションを指定してファイルを圧縮する例を示します。


import zipfile
def compress_file(file_path, zip_path):
    with zipfile.ZipFile(zip_path, 'w', compression=zipfile.ZIP_DEFLATED, compresslevel=5) as zipf:
        zipf.write(file_path)
# ファイルを圧縮する
compress_file('sample.txt', 'sample.zip')

上記の例では、compress_typezipfile.ZIP_DEFLATEDを指定してデータを圧縮し、compresslevel5を指定して圧縮レベルを中程度に設定しています。

圧縮レベルが高いほど圧縮後の容量が小さくなりますが、圧縮時間が長くなります。

以上が、Pythonの標準ライブラリを使ったzip圧縮の方法についての解説です。

zipfileモジュールの機能を活用して、簡単にファイルやフォルダを圧縮してみてください。

1 2

この記事のページ一覧
  1. 現在のページ
目次から探す