Python lmza.LMZADecompressor() 返回空字节
Python lmza.LMZADecompressor() returning null byte
我压缩了字节,当我尝试解压缩时它给出了一个空字节。
import lzma
comp = lzma.LZMACompressor()
decomp = lzma.LZMADecompressor()
a= comp.compress(b'alpha')
print(a)
b = decomp.decompress(a)
print(b)
这是结果。
b'\xfd7zXZ\x00\x00\x04\xe6\xd6\xb4F\x02\x00!\x01\x16\x00\x00\x00t/\xe5\xa3'
b''
为什么会出现这种情况,如何解决。
那是因为 comp.compress
没有 return 完整的压缩字节串。
您必须将 comp.flush()
的结果附加到 a
.
import lzma
comp = lzma.LZMACompressor()
decomp = lzma.LZMADecompressor()
a= comp.compress(b'alpha') + comp.flush()
print(a)
b = decomp.decompress(a)
print(b)
我压缩了字节,当我尝试解压缩时它给出了一个空字节。
import lzma
comp = lzma.LZMACompressor()
decomp = lzma.LZMADecompressor()
a= comp.compress(b'alpha')
print(a)
b = decomp.decompress(a)
print(b)
这是结果。
b'\xfd7zXZ\x00\x00\x04\xe6\xd6\xb4F\x02\x00!\x01\x16\x00\x00\x00t/\xe5\xa3'
b''
为什么会出现这种情况,如何解决。
那是因为 comp.compress
没有 return 完整的压缩字节串。
您必须将 comp.flush()
的结果附加到 a
.
import lzma
comp = lzma.LZMACompressor()
decomp = lzma.LZMADecompressor()
a= comp.compress(b'alpha') + comp.flush()
print(a)
b = decomp.decompress(a)
print(b)