Python标准库zlib中提供的compress()和decompress()函数可以用于数据的压缩和解压缩,在压缩数据之前需要先想办法编码为字节串。
>>> import zlib >>> x = 'Python程序设计系列图书,董付国编著,清华大学出版社'.encode() >>> len(x) 72 >>> y = zlib.compress(x) >>> len(y) #对于重复度比较小的信息,压缩比小 83 >>> x = ('Python系列图书'*3).encode() >>> len(x) 54 >>> y = zlib.compress(x) #信息重复度越高,压缩比越大 >>> len(y) 30 >>> z = zlib.decompress(y) >>> len(z) 54 >>> z.decode() 'Python系列图书Python系列图书Python系列图书'
>>> x = [1, 2, 3, 1, 1, 1, 1]
>>> y = str(x).encode() >>> len(y) 21 >>> z = zlib.compress(y) >>> len(x) 7 >>> zz = zlib.decompress(z) >>> zz b'[1, 2, 3, 1, 1, 1, 1]' >>> zz.decode() '[1, 2, 3, 1, 1, 1, 1]' >>> eval(_) [1, 2, 3, 1, 1, 1, 1]