python中zip和unzip数据的方法

654次阅读  |  发布于5年以前

本文实例讲述了python zip和unzip数据的方法。分享给大家供大家参考。具体实现方法如下:


    # 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)"

希望本文所述对大家的Python程序设计有所帮助。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8