diff options
Diffstat (limited to 'Demo/zlib/zlibdemo.py')
-rwxr-xr-x | Demo/zlib/zlibdemo.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Demo/zlib/zlibdemo.py b/Demo/zlib/zlibdemo.py new file mode 100755 index 0000000..fff1750 --- /dev/null +++ b/Demo/zlib/zlibdemo.py @@ -0,0 +1,36 @@ +#!/usr/local/bin/python + +import zlib, sys +if len(sys.argv)>1: filename=sys.argv[1] +else: filename='zlibdemo.py' +print 'Reading', filename +f=open(filename, 'r') # Get the data to compress +s=f.read() +f.close() + +# First, we'll compress the string in one step +comptext=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 steps + +chunk=256 +compressor=zlib.compressobj(9) +decompressor=zlib.decompressobj() +comptext=decomp='' +for i in range(0, len(s), chunk): + comptext=comptext+compressor.compress(s[i:i+chunk]) +comptext=comptext+compressor.flush() # Don't forget to call flush()!! + +for i in range(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) + |