Updated for 2.1a3
[python/dscho.git] / Demo / zlib / zlibdemo.py
blob7c56e3e6625eee72df4dcfafd0fd6606e979edea
1 #!/usr/bin/env python
3 import zlib, sys
4 if len(sys.argv)>1: filename=sys.argv[1]
5 else: filename='zlibdemo.py'
6 print 'Reading', filename
7 f=open(filename, 'r') # Get the data to compress
8 s=f.read()
9 f.close()
11 # First, we'll compress the string in one step
12 comptext=zlib.compress(s, 1)
13 decomp=zlib.decompress(comptext)
15 print '1-step compression: (level 1)'
16 print ' Original:', len(s), 'Compressed:', len(comptext),
17 print 'Uncompressed:', len(decomp)
19 # Now, let's compress the string in stages; set chunk to work in smaller steps
21 chunk=256
22 compressor=zlib.compressobj(9)
23 decompressor=zlib.decompressobj()
24 comptext=decomp=''
25 for i in range(0, len(s), chunk):
26 comptext=comptext+compressor.compress(s[i:i+chunk])
27 comptext=comptext+compressor.flush() # Don't forget to call flush()!!
29 for i in range(0, len(comptext), chunk):
30 decomp=decomp+decompressor.decompress(comptext[i:i+chunk])
31 decomp=decomp+decompressor.flush()
33 print 'Progressive compression (level 9):'
34 print ' Original:', len(s), 'Compressed:', len(comptext),
35 print 'Uncompressed:', len(decomp)