zlib
モジュールで提供されているデータ圧縮は、GNU の
圧縮プログラム gzip のものと互換性があります。
そこで、gzip モジュールでは、gzip 形式の
ファイルを読み書きするための GzipFile クラスを提供します。
このクラスのオブジェクトは自動的にデータを圧縮または解凍するので、
通常のファイルオブジェクトのように見えます。
gzip や gunzip プログラムで解凍できる、
compress や pack による他の形式の圧縮ファイルは
このモジュールではサポートされていないので注意してください。
このモジュールでは以下の項目を定義しています:
[filename[, mode[, compresslevel[, fileobj]]]]) |
クラスの新しいインスタンスは、fileobj に基づいて作成 されます。fileobj は通常のファイル、StringIO オブジェクト、そしてその他ファイルをシミュレートできる オブジェクトでかまいません。値はデフォルトでは None で、 ファイルオブジェクトを生成するために filename を開きます。
gzip ファイルヘッダ中には、ファイルが解凍されたときの元の
ファイル名を収めることができますが、fileobj が None
でない場合、引数 filename がファイル名として認識できる文字列
であれば、filename はファイルヘッダに収めるためだけに使われ
ます。そうでない場合(この値はデフォルトでは空文字列です)、
元のファイル名はヘッダに収められません。
mode 引数は、ファイルを読み出すのか、書き込むのかによって、
'r'
, 'rb'
, 'a'
, 'ab'
, 'w'
,
そして 'wb'
, のいずれかになります。fileobj の
ファイルモードが認識可能な場合、mode はデフォルトで
fileobj のモードと同じになります。そうでない場合、
デフォルトのモードは 'rb'
です。'b' フラグがついて
いなくても、ファイルがバイナリモードで開かれることを保証するために
'b' フラグが追加されます。これはプラットフォーム間での移植性の
ためです。
compresslevel 引数は 1
から 9
までの整数で、
圧縮のレベルを制御します。1
は最も高速で最小限の圧縮しか
行いません。9
は最も低速ですが、最大限の圧縮を行います。
デフォルトの値は 9
です。
圧縮したデータの後ろにさらに何か追記したい場合もあるので、 GzipFile オブジェクトの close() メソッド呼び出し は fileobj をクローズしません。この機能によって、書き 込みのためにオープンした StringIO オブジェクトを fileobj として渡し、(GzipFile を close() した後に) StringIO オブジェクトの getvalue() メソッドを使って 書き込んだデータの入っているメモリバッファを取得することができます。
filename[, mode[, compresslevel]]) |
GzipFile(filename,
mode,
compresslevel)
の短縮形です。
引数 filename は必須です。デフォルトで mode は'rb'
に、
compresslevel は 9
に設定されています。
参考: