# zipping
and
unzipping a string using the zlib module
# a very large string could be zipped
and
saved to a file speeding up file writing time
#
and
later reloaded
and
unzipped by another program speeding up reading of the file
# tested with Python24 vegaseat 15aug2005
import zlib
str1 = \
""
"Dallas Cowboys football practice at Valley Ranch was delayed on Wednesday
for
nearly two hours. One of the players,
while
on his way to the locker
room happened to look down
and
notice a suspicious looking, unknown white
powdery substance on the practice field.
The coaching staff immediately suspended practice
while
the FBI was
called in to investigate. After a complete field analysis, the FBI
determined that the white substance unknown to the players was the goal
line.
Practice was resumed when FBI Special Agents decided that the team would not
be likely to encounter the substance again.
""
"
print
'-'
*70 # 70 dashes
for
the fun of it
print
str1
print
'-'
*70
crc_check1 = zlib.crc32(str1)
print
"crc before zip="
, crc_check1
print
"Length of original str1 ="
, len(str1)
# zip compress the string
zstr1 = zlib.compress(str1)
print
"Length of zipped str1 ="
, len(zstr1)
filename =
'Dallas.zap'
# write the zipped string to a file
fout = open(filename,
'w'
)
try
:
print
>> fout, zstr1
except IOError:
print
"Failed to open file..."
else
:
print
"done writing"
, filename
fout.close()
# read the zip file back
fin = open(filename,
'r'
)
try
:
zstr2 = fin.read()
except IOError:
print
"Failed to open file..."
else
:
print
"done reading"
, filename
fin.close()
# unzip the zipped string from the file
str2 = zlib.decompress(zstr2)
print
'-'
*70
print
str2
print
'-'
*70
crc_check2 = zlib.crc32(str2)
print
"crc after unzip ="
, crc_check2,
"(check sums should match)"