compress/decompress
我們有時會有想要壓縮資料及解壓縮資料的需求。
不論是什麼理由要進行壓縮,在python裡,我們可以使用到zlib。
今天讓我們來看看如何在 python 裡使用 zlib 進行壓縮。
zlib
zlib 是一個歷史悠久的工具,我們可能每天都在不知情的情況下使用到了這個工具帶來的結果。
在 python 裡 zlib 模組提供了 Zlib 壓縮的能力,而 Zlib 是由 GNU 專案的一部分。
compress
一般給定一個想要進行壓縮的 byte 字組,就會進行壓縮,回傳同樣是一組 byte 字組。
也可以追加一個 level(0-9) 的參數來指定壓縮的程度。0代表沒有壓縮,9代表最大的壓縮。
我們在進行解壓縮時再一起講範例吧。
decompress
相對於 compress 我們一定會需要 decompress 來進行反相的工作。
1 | import zlib |
c 的結果是 ‘x\x9c\xcbH\xcd\xc9\xc9W(\xa8,\xc9\xc8\xcf\x03\x00\x1e\xf0\x04\xd7’
1 | x = zlib.decompress(c) |
同樣的上面會得到原來的字串。
我們也可以用compressobj來進行壓縮。
1 | s1 = b'hello python' |
上面的 s2 會和前面的例子中的 c 有一樣的結果。
1 | d = zlib.decompressobj() |
上面的例子又同樣得到了 b’hello python’
1 | print(zlib.ZLIB_VERSION) |
在我的 mac 上python用的是 ‘1.2.11’