zlib
-- zlib 圧縮器 & 展開器¶
このモジュールは、該当する CPython モジュールのサブセットを実装しています。
詳しくはオリジナルの CPython ドキュメンテーションを参照してください: zlib
.
このモジュールは DEFLATE algorithm アルゴリズム(zlib ライブラリや gzip アーカイバで使われている)を使ってバイナリデータの圧縮と展開を行えます。
注釈
deflate.DeflateIO
を、このモジュールの関数の代わりに使うことをお勧めします。このクラスは、ファイル、ソケット、ストリームに対し、圧縮したデータを読み書きするのに便利で、メモリ効率が良い圧縮/展開ストリーミングインターフェースを提供します。
利用可能性:
MicroPython v1.21 以降、このモジュールはデフォルトで全ての MicroPython ファームウェアに含まれているとは限りません。これは
deflate
モジュールで利用可能な機能と重複しているためです。このモジュールのコピーは micropython-lib (ソース)からインストール(または凍結)できます。詳細については パッケージ管理 を参照してください。このドキュメントはそのモジュールについて説明しています。
組込みの
deflate
モジュール(MicroPython v1.21 以降で利用可能)が必要です。圧縮サポートは、組込みの
deflate
モジュールで圧縮サポートが有効になっている場合にのみ利用可能です。
関数¶
- zlib.decompress(data, wbits=15, /)¶
data を bytes オブジェクトに展開します。
wbits パラメータは、
zlib.compress()
と同様に動作しますが、次の追加の有効な値があります。0
: zlib ヘッダーからウィンドウサイズを自動的に決定します(data は zlib フォーマットである必要があります)。35
から47
: zlib または gzip フォーマットを自動検出します。
zlib.compress()
と同様に、 wbits パラメータに関する詳細についてはCPython の zlib ドキュメント
を参照してください。zlib.compress()
と同様に、MicroPython は CPython よりも小さいウィンドウサイズもサポートしています。詳細については、deflate
モジュールのドキュメントで MicroPython 固有の詳細 を確認してください。展開するデータがより大きなウィンドウサイズを必要とする場合、展開の際に失敗します。
- zlib.compress(data, wbits=15, /)¶
data を bytes オブジェクトに圧縮します。
wbits は、DEFLATE 辞書のウィンドウサイズと出力形式を設定できます。ウィンドウサイズは、メモリ使用量と圧縮レベルのトレードオフを行うために使用されます。より大きなウィンドウサイズは、圧縮器が入力のさらに以前のフラグメントを参照できるようにします。出力形式には、ヘッダーとチェックサムが含まれる zlib, gzip、およびヘッダー/フッターのない「生」の DEFLATE があります。
wbits の絶対値の下位4ビットは、DEFLATE 辞書のウィンドウサイズの2進対数を表します。たとえば
wbits=10
,wbits=-10
,wbits=26
はすべてウィンドウサイズを1024バイトに設定します。有効なウィンドウサイズは5
から15
までの範囲です(32バイトから32kバイトに相当)。wbits の
-5
から-15
の負の値は「生」出力モードに対応し、5
から15
までの正の値は zlib 出力モードに、21
から31
までの正の値は gzip 出力モードに対応します。wbits パラメータに関する詳細については
CPython の zlib ドキュメント
を参照してください。MicroPython では、メモリ制約がある場合でも適度な圧縮レベルを達成できるように、より小さなウィンドウサイズを使えます。これは圧縮器の処理を高速化することにも役立ちます。 詳しくはdeflate
モジュールのドキュメントにある MicroPython 固有の詳細 を参照してください。