importzlib,sysiflen(sys.argv)>1:filename=sys.argv[1]else:filename='zlibdemo.py'print'Reading',filenamef=open(filename,'r')# Get the data to compresss=f.read()f.close()# First, we'll compress the string in one stepcomptext=zlib.compress(s,1)decomp=zlib.decompress(comptext)print'1-step compression: (level 1)'print' Original:',len(s),'Compressed:',len(comptext),print'Uncompressed:',len(decomp)# Now, let's compress the string in stages; set chunk to work in smaller stepschunk=256compressor=zlib.compressobj(9)decompressor=zlib.decompressobj()comptext=decomp=''foriinrange(0,len(s),chunk):comptext=comptext+compressor.compress(s[i:i+chunk])comptext=comptext+compressor.flush()# Don't forget to call flush()!!foriinrange(0,len(comptext),chunk):decomp=decomp+decompressor.decompress(comptext[i:i+chunk])decomp=decomp+decompressor.flush()print'Progressive compression (level 9):'print' Original:',len(s),'Compressed:',len(comptext),print'Uncompressed:',len(decomp)