• 技术文章 >后端开发 >Python教程

    详解python用模块zlib压缩与解压字符串和文件的方法代码

    高洛峰高洛峰2017-03-24 17:39:58原创894
    python中zlib模块是用来压缩或者解压缩数据,以便保存和传输。它是其他压缩工具的基础。下面来一起看看python用模块zlib压缩与解压字符串和文件的方法。话不多说,直接来看示例代码。
    例子1:压缩与解压字符串

    import zlib
    message = 'abcd1234'
    compressed = zlib.compress(message)
    decompressed = zlib.decompress(compressed)
    print 'original:', repr(message)
    print 'compressed:', repr(compressed)
    print 'decompressed:', repr(decompressed)


    结果

    original: 'abcd1234'
    compressed: 'x\x9cKLJN1426\x01\x00\x0b\xf8\x02U'
    decompressed: 'abcd1234'


    例子2:压缩与解压文件

    import zlib
    def compress(infile, dst, level=9):
     infile = open(infile, 'rb')
     dst = open(dst, 'wb')
     compress = zlib.compressobj(level)
     data = infile.read(1024)
     while data:
      dst.write(compress.compress(data))
      data = infile.read(1024)
     dst.write(compress.flush())
    def decompress(infile, dst):
     infile = open(infile, 'rb')
     dst = open(dst, 'wb')
     decompress = zlib.decompressobj()
     data = infile.read(1024)
     while data:
      dst.write(decompress.decompress(data))
      data = infile.read(1024)
     dst.write(decompress.flush())
    if __name__ == "__main__":
     compress('in.txt', 'out.txt')
     decompress('out.txt', 'out_decompress.txt')


    结果
    生成文件

    out_decompress.txt out.txt


    问题――处理对象过大异常

    >>> import zlib
    >>> a = '123'
    >>> b = zlib.compress(a)
    >>> b
    'x\x9c342\x06\x00\x01-\x00\x97'
    >>> a = 'a' * 1024 * 1024 * 1024 * 10
    >>> b = zlib.compress(a)
    Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
    OverflowError: size does not fit in an int


    以上就是详解python用模块zlib压缩与解压字符串和文件的方法代码的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python
    上一篇:手动释放Python的内存的方法 下一篇:使用python常见的格式化输出原因
    Web大前端开发直播班

    相关文章推荐

    • 详细了解Python进程池与进程锁• 一起聊聊Python的编码样式• 带你搞懂Python反序列化• 归纳整理!Python实用技巧总结• 归纳整理python正则表达式解析
    1/1

    PHP中文网