zlib和gzip的区分和使用

gzip和zlib是相近,但不完全一样的算法。http数据传输通常使用的是gzip算法。

在python里,zlib使用比较简单,它直接针对内存块进行压缩和解压,如:

import zlib
res = zlib.compress(data)
data = zlib.decompress(res)

而gzip主要针对文件进行压缩和解压,不过可以使用StringIO来用内存块模拟文件操作,如压缩示例:

import gzip
f = StringIO()
gz = gzip.GzipFile(fileobj=f, mode='wb')
gz.write(data)
gz.close()
res = f.getvalue()

解压示例:

f2 = StringIO(res)
gz2 = gzip.GzipFile(fileobj=f2, mode='rb')
data = gz2.read()

使用真实文件,示例:

import gzip
#解压
f = gzip.open('file.gz', 'rb')
data = f.read()
f.close()

#压缩
f = gzip.open('file.gz', 'wb')
f.write(data)
f.close()
发表于 2016年11月07日 18:07   评论:0   阅读:3537  



回到顶部

首页 | 关于我 | 关于本站 | 站内留言 | rss
python logo   django logo   tornado logo