我需要使用zlib解码一些数据。经过一堆谷歌搜索,我认为python可以做到这一点。
我对如何实现这一点感到有点失落;任何人都可以让我走上正轨吗?
数据只是编码文本;我知道我需要在python文件中导入zlib,并使用它进行解码,但是我迷失了从哪里开始。
我从这开始:
import zlib
f = "012301482103"
data = f
zlib.decompress((data))
print data
任何指针都会很棒。 希望这里不要太模糊。 非常感谢
答案 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)