如何在 python 中解码压缩的 zlib 数据?

Dwa*_*are 1 python zlib

我有一些数据需要使用 zlib 进行解码。经过一番谷歌搜索后,我认为 python 可以做到这一点。

我有点不知道如何实现这一点;谁能帮我走上这条路?

数据只是编码文本;我知道我需要导入zlib一个 python 文件,并使用它进行解码,但我不知道从哪里开始。

我是从这个开始的:

import zlib

f = "012301482103"
data = f
zlib.decompress((data))
print data
Run Code Online (Sandbox Code Playgroud)

nls*_*bch 5

使用zlib.decompress。它需要一个byte对象 ( Python 3.x),因此您需要首先以二进制模式 ( mode ) 读取文件'rb',然后将其传递给decompress()

import zlib

f = open('your_compressed_file', 'rb')
decompressed_data = zlib.decompress(f.read())
Run Code Online (Sandbox Code Playgroud)

如果您使用的是Python 2.7,则使用 mode 读取文件'r'应该足够了,因为2.7它需要一个字符串作为输入。

如果数据不是文件,只需执行以下操作:

data = '9C 2B C9 57 28 CD 73 CE 2F 4B 0D 52 48 2D 4B 2D AA 54 C8 49 2C'

# for Python 2.7
data = data if isinstance(data, str) else str(data,'utf-8')
zlib.decompress(data)

# for Python 3.x
data = data if isinstance(data, bytes) else data.encode('utf-8')
zlib.decompress(data)
Run Code Online (Sandbox Code Playgroud)

Python 2.7 文档的链接

Python 3.6 的文档链接