python用模塊zlib壓縮與解壓字符串和文件的方法
更新時間:2016年12月16日 08:38:05 作者:jihite
Python標準模塊中,有多個模塊用于數(shù)據(jù)的壓縮與解壓縮,如zipfile,gzip, bz2等等。這篇文章主要給大家介紹了python如何利用模塊zlib壓縮與解壓字符串和文件的方法,有需要的朋友們可以參考借鑒,下面來一起看看吧。
python中zlib模塊是用來壓縮或者解壓縮數(shù)據(jù),以便保存和傳輸。它是其他壓縮工具的基礎(chǔ)。下面來一起看看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)
結(jié)果
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')
結(jié)果
生成文件
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
總結(jié)
以上就是關(guān)于python模塊zlib壓縮與解壓的全部內(nèi)容,希望本文的內(nèi)容對大家學習或者使用python能有一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
入門tensorflow教程之TensorBoard可視化模型訓練
在本篇文章中,主要介紹 了TensorBoard 的基礎(chǔ)知識,并了解如何可視化訓練模型中的一些基本信息,希望對大家的TensorBoard可視化模型訓練有所幫助2021-08-08python?如何實現(xiàn)跳過異常繼續(xù)執(zhí)行
這篇文章主要介紹了python?如何實現(xiàn)跳過異常繼續(xù)執(zhí)行,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07