Home  >  Article  >  Backend Development  >  Detailed explanation of the method code of Python using the module zlib to compress and decompress strings and files

Detailed explanation of the method code of Python using the module zlib to compress and decompress strings and files

高洛峰
高洛峰Original
2017-03-24 17:39:581734browse

The zlib module in python is used to compress or decompress data for saving and transmission. It is the basis for other compression tools. Let's take a look at how Python uses the zlib module to compress and decompress strings and files. Without further ado, let’s look directly at the sample code.
Example 1: Compressing and decompressing strings

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


Result

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


Example 2: Compressed and decompressed files

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')


Result
Generated file

out_decompress.txt out.txt


Problem - Processing object too large exception

>>> 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


The above is the detailed content of Detailed explanation of the method code of Python using the module zlib to compress and decompress strings and files. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn