#coding=gbk import zlib, urllib fp = ('http://localhost/') # 访问的到的网址。 data = fp.read() fp.close() #---- 压缩数据流 str1 = (data, zlib.Z_BEST_COMPRESSION) str2 = (str1) print '原始数据长度:', len(data) print '-' * 30 print '压缩后:', len(str1) print '解压后:', len(str2) print '-' * 30 #---- 使用Compress, Decompress对象对数据流进行压缩/解压缩 com_obj = (zlib.Z_BEST_COMPRESSION) decom_obj = () str_obj = com_obj.compress(data) str_obj += com_obj.flush() print '压缩后:', len(str_obj) str_obj1 = decom_obj.decompress(str_obj) str_obj1 += decom_obj.flush() print '解压后:', len(str_obj1) print '-' * 30 #---- 使用Compress, Decompress对象,对数据进行分块压缩/解压缩。 com_obj1 = (zlib.Z_BEST_COMPRESSION) decom_obj1 = () chunk_size = 30; #原始数据分块 str_chunks = [data[i * chunk_size:(i + 1) * chunk_size] / for i in range((len(data) + chunk_size) / chunk_size)] str_obj2 = '' for chunk in str_chunks: str_obj2 += com_obj1.compress(chunk) str_obj2 += com_obj1.flush() print '分块压缩后:', len(str_obj2) #压缩数据分块解压 str_chunks = [str_obj2[i * chunk_size:(i + 1) * chunk_size] / for i in range((len(str_obj2) + chunk_size) / chunk_size)] str_obj2 = '' for chunk in str_chunks: str_obj2 += decom_obj1.decompress(chunk) str_obj2 += decom_obj1.flush() print '分块解压后:', len(str_obj2)
# ---- 结果 ------------------------
原始数据长度: 5783
------------------------------
压缩后: 1531
解压后: 5783
------------------------------
压缩后: 1531
解压后: 5783
------------------------------
分块压缩后: 1531
分块解压后: 5783