ホームページ  >  記事  >  バックエンド開発  >  モジュール zlib を使用して文字列やファイルを圧縮および解凍するための Python のメソッド コードの詳細な説明

モジュール zlib を使用して文字列やファイルを圧縮および解凍するための Python のメソッド コードの詳細な説明

高洛峰
高洛峰オリジナル
2017-03-24 17:39:581698ブラウズ

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


以上がモジュール zlib を使用して文字列やファイルを圧縮および解凍するための Python のメソッド コードの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。