使用python解码压缩的zlib数据

时间:2017-06-21 11:28:24

标签: python zlib

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

我对如何实现这一点感到有点失落;任何人都可以让我走上正轨吗?

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

我从这开始:

import zlib

f = "012301482103"
data = f

zlib.decompress((data))
print data

任何指针都会很棒。 希望这里不要太模糊。 非常感谢

1 个答案:

答案 0 :(得分:3)

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

import zlib

f = open('your_compressed_file', 'rb')
decompressed_data = zlib.decompress(f.read())

如果您使用的是Python 2.7,那么使用模式'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)

Link to the docs for Python 2.7

Link to the docs for Python 3.6