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
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
22 compressor
=zlib
.compressobj(9)
23 decompressor
=zlib
.decompressobj()
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
)