7.18.1 ZipFile オブジェクト

クラス ZipFile( file[, mode[, compression]])
ZIP ファイルを開きます。file はファイルへのパス名 (文字列) またはファイルのように振舞うオブジェクトのどちらでもかまいません。 mode パラメタは、既存のファイルを読むためには 'r'、 既存のファイルを切り詰めたり新しいファイルに書き込むためには 'w'、 追記を行うためには 'a' でなくてはなりません。 mode'a'file が既存の ZIP ファイルを 参照している場合、追加するファイルは既存のファイル中の ZIP アーカイブ に追加されます。file が ZIP を参照していない場合、新しい ZIP アーカイブが生成され、既存のファイルの末尾に追加されます。このことは、 ある ZIP ファイルを他のファイル、例えば python.exe

cat myzip.zip >> python.exe

として追加することができ、少なくとも WinZip がこのような ファイルを読めることを意味します。 compression はアーカイブを書き出すときの ZIP 圧縮法で、 ZIP_STORED または ZIP_DEFLATED でなくては なりません。不正な値を指定すると RuntimeError が送出 されます。また、ZIP_DEFLATED 定数が指定されているのに zlib を利用することができない場合、 RuntimeError が送出されます。デフォルト値は ZIP_STORED です。

close( )
アーカイブファイルを閉じます。close() は プログラムを終了する前に必ず呼び出さなければなりません。 さもないとアーカイブ上の重要なレコードが書き込まれません。

getinfo( name)
アーカイブメンバ name に関する情報を持つ ZipInfo オブジェクトを返します。

infolist( )
アーカイブに含まれる各メンバの ZipInfo オブジェクトからなる リストを返します。既存のアーカイブファイルを開いている場合、 リストの順番は実際の ZIP ファイル中のメンバの順番と同じになります。

namelist( )
アーカイブメンバの名前のリストを返します。

printdir( )
アーカイブの目次を sys.stdout に出力します。

read( name)
アーカイブ中のファイルの内容をバイト列にして返します。アーカイブは 読み込みまたは追記モードで開かれていなくてはなりません。

testzip( )
アーカイブ中の全てのファイルを読み、CRC チェックサムが正常か調べます。 アーカイブ中で不正なチェックサムをもつ最初のファイルの名前を返します。 不正なファイルがなければ None を返します。

write( filename[, arcname[, compress_type]])
filename に指定したファイル名を持つファイルを、アーカイブ名を arcname (デフォルトでは filename と同じ) にして アーカイブに収録します。compress_type を指定した場合、 コンストラクタを使って新たなアーカイブエントリを生成した際に使った compression パラメタを上書きします。 アーカイブのモードは 'w' または 'a' でなくてはなりません。

writestr( zinfo_or_arcname, bytes)
文字列 bytesをアーカイブに書き込みます。zinfo_or_arcname はアーカイブ中で指定するファイル名か、またはZipInfo インスタンス を指定します。zinfo_or_arcnameZipInfo インスタンスを指定 する場合、zinfoインスタンスには少なくともファイル名、日付および時刻 を指定しなければなりません。ファイル名を指定した場合、日付と時刻には現在の 日付と時間が設定されます。アーカイブはモード 'w' または 'a' で開かれていなければなりません。

以下のデータ属性も利用することができます。

debug
使用するデバッグ出力レベル。この属性は 0 (デフォルト、何も出力しない) から 3 (最も多くデバッグ情報を 出力する) までの値に設定することができます。デバッグ情報は sys.stdout に出力されます。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。