python通过zlib实现压缩与解压字符串的方法

本文实例讲述了python通过zlib实现压缩与解压字符串的方法。分享给大家供大家参考。具体实现方法如下:

使用zlib.compress可以压缩字符串。使用zlib.decompress可以解压字符串。如下

#coding=utf-8

import zlib

s = "hello word, 00000000000000000000000000000000"

print len(s)

c = zlib.compress(s)

print len(c)

d =  zlib.decompress(c)

print d

 
示范代码2:
import zlib

message = 'witch which has which witches wrist watch'

compressed = zlib.compress(message) 

decompressed = zlib.decompress(compressed) 

print 'original:', repr(message) 

print 'compressed:', repr(compressed) 

print 'decompressed:', repr(decompressed) #输出original: 'witch which has which witches wrist watch'

compressed: 'xx9c+xcf,IxceP(xcfxc8x04x92x19x89xc5PV9H4x15xc8+xca,.Q(Ox04xf2x00D?x0fx89'

decompressed: 'witch which has which witches wrist watch'

如果我们要对字符串进行解压可以使用zlib.compressobj和zlib.decompressobj对文件进行压缩解压
def compress(infile, dst, level=9):

    infile = open(infile, 'rb')

    dst = open(dst, 'wb')

    compress = zlib.compressobj(level)

    data = infile.read(1024)

    while data:

        dst.write(compress.compress(data))

        data = infile.read(1024)

    dst.write(compress.flush())

def decompress(infile, dst):

    infile = open(infile, 'rb')

    dst = open(dst, 'wb')

    decompress = zlib.decompressobj()

    data = infile.read(1024)

    while data:

        dst.write(decompress.decompress(data))

        data = infile.read(1024)

    dst.write(decompress.flush())

希望本文所述对大家的Python程序设计有所帮助。