我在代码中使用以下行:
payloadByte = zlib.compress(str.encode("hello"))
print(zlib.decompress(payloadByte[0:4]))
但是,zlib抛出以下错误:
^{pr2}$我需要使用字节切片技术,因为我必须从一个大字节数组的特定点解压缩。我使用一个结构创建了这个字节数组,如下所示:
messageIdByte = struct.pack("i", int(messageId))
payloadByte = zlib.compress(str.encode("hello"))
return messageIdByte + payloadByte
在本例中,我已经将结构解压缩如下:
messageId = struct.unpack("i", bytes[0:4])[0]
现在,我需要从字节数组中解压字符串,但是获取特定的字节[4:8]会产生这个错误。在
问题可能是你试图解压的数据并不是你想象的那么大。例如,在您的示例中,当您使用zlib压缩字符串“hello”时,结果是13个字节长,但是您的代码假定得到的压缩字符串是5个字节。试试这样的方法:
以确保检索的是整个压缩数据块。在
相关问题 更多 >
编程相关推荐