May 2001
Intermediate to advanced
304 pages
6h 12m
English
(Optional) The zlib module provides support for “zlib”
compression. (This compression method is also known as
“deflate.”)
Example 2-43 shows how the compress and decompress
functions take string arguments.
Example 2-43. Using the zlib Module to Compress a String
File: zlib-example-1.py import zlib MESSAGE = "life of brian" compressed_message = zlib.compress(MESSAGE) decompressed_message = zlib.decompress(compressed_message) print "original:", repr(MESSAGE) print "compressed message:", repr(compressed_message) print "decompressed message:", repr(decompressed_message)original: 'life of brian'compressed message: 'x\234\313\311LKU\310OSH*\312L\314\003\000!\010\004\302'decompressed message: 'life of brian'
The compression rate varies a lot, depending on the contents of the file, as you can see in Example 2-44.
Example 2-44. Using the zlib Module to Compress a Group of Files
File: zlib-example-2.py
import zlib
import glob
for file in glob.glob("samples/*"):
indata = open(file, "rb").read()
outdata = zlib.compress(indata, zlib.Z_BEST_COMPRESSION)
print file, len(indata), "=>", len(outdata),
print "%d%%" % (len(outdata) * 100 / len(indata))
samples\sample.au 1676 => 1109 66%
samples\sample.gz 42 => 51 121%
samples\sample.htm 186 => 135 72%
samples\sample.ini 246 => 190 77%
samples\sample.jpg 4762 => 4632 97%
samples\sample.msg 450 => 275 61%
samples\sample.sgm 430 => 321 74%
samples\sample.tar 10240 => 125 1%
samples\sample.tgz 155 => 159 102%
samples\sample.txt 302 => ...Read now
Unlock full access