- # 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)"
来源: http://www.phpxs.com/code/1005007/