# 4 `zipfile` -- ZIP アーカイブの処理

バージョン 1.6 で 新たに追加 された仕様です。

ZIP は一般によく知られているアーカイブ （書庫化）および圧縮の標準ファイルフォーマットです。 このモジュールでは ZIP 形式のファイルの作成、読み書き、追記、 書庫内のファイル一覧の作成を行うためのツールを提供します。 より高度な使い方でこのモジュールを利用したいなら、 PKZIP Application Note. に定義されている ZIP ファイルフォーマットを理解することが必要に なるでしょう。

このモジュールは現在のところ、コメントを追記した ZIP ファイルや マルチディスク ZIP ファイルを扱うことはできません。 ZIP64 拡張を利用する ZIP ファイル(サイズが 4GB を超えるような ZIP ファイル) は扱えます。

このモジュールで利用できる属性を以下に示します:

exception `error`
  不備のある ZIP ファイル操作の際に送出されるエラー

exception `LargeZipFile`
  ZIP ファイルが ZIP64 の機能を必要とするとき、 その機能が有効にされていないと送出されるエラー

class `ZipFile`
  ZIP ファイルの読み書きのためのクラスです。 コンストラクタの詳細については、 ``ZipFile オブジェクト'' (12.4.1 節) を参照してください。

class `PyZipFile`
  Python ライブラリを含む ZIP アーカイブを生成するためのクラスです。

クラス `ZipInfo`( | [filename[, date_time]])

  アーカイブ中のメンバに関する情報を提供するために用いられるクラスです。 このクラスのインスタンスは `ZipFile` オブジェクトの `getinfo()` および `infolist()` メソッドによって返され ます。`zipfile` モジュールを利用するほとんどのユーザはこの オブジェクトを自ら生成する必要はなく、モジュールが生成して返す オブジェクトを利用するだけでしょう。 filename はアーカイブメンバの完全な名前で、 date_time は ファイルの最終更新時刻を記述する、 6 つの フィールドからなるタプルでなくてはなりません。各フィールドについては 12.4.3, ``ZipInfo オブジェクト'' 節を参照してください。

`is_zipfile`( | filename)

  filename が正しいマジックナンバをもつ ZIP ファイルのときに `True` を返し、そうでない場合 `False` を返します。この モジュールは現在のところ、コメントを追記した ZIP ファイルを扱うこと ができません。

`ZIP_STORED`
  アーカイブメンバが圧縮されていないことを表す数値定数です。

`ZIP_DEFLATED`
  通常の ZIP 圧縮手法を表す数値定数。ZIP 圧縮は zlib モジュールを必要 とします。現在のところ他の圧縮手法はサポートされていません。

参考:

PKZIP Application Note
  ZIP ファイル形式およびアルゴリズムを作成した Phil Katz によるドキュメント。

Info-ZIP Home Page
  Info-ZIP プロジェクトによる ZIP アーカイブプログラム及びプログラム開発ライブラリに関する情報。