0
lzma
을 사용하여 메모리의 일부 데이터를 압축하고 압축을 풀려고합니다. 나는 다음과 같은 접근 방식이 작동하는지 알고LZMADecompressor가 올바르게 작동하지 않습니다.
import lzma
s = 'Lorem ipsum dolor'
bytes_in = s.encode('utf-8')
print(s)
print(bytes_in)
# Compress
bytes_out = lzma.compress(data=bytes_in, format=lzma.FORMAT_XZ)
print(bytes_out)
# Decompress
bytes_decomp = lzma.decompress(data=bytes_out, format=lzma.FORMAT_XZ)
print(bytes_decomp)
출력은 다음과 같습니다
Lorem ipsum dolor
b'Lorem ipsum dolor'
b'\xfd7zXZ\x00\x00\x04\xe6\xd6\xb4F\x02\x00!\x01\x16\x00\x00\x00t/\xe5\xa3\x01\x00\x10Lorem ipsum dolor\x00\x00\x00\x00\xddq\x8e\x1d\x82\xc8\xef\xad\x00\x01)\x112\np\x0e\x1f\xb6\xf3}\x01\x00\x00\x00\x00\x04YZ'
b'Lorem ipsum dolor'
는 그러나, 나는 lzma.LZMACompressor
를 사용하여 서로 다른 결과를 얻을 수 있음을 알 수 있습니다. 다음 코드 :
Lorem ipsum dolor
b'Lorem ipsum dolor'
b'\x01\x00\x10Lorem ipsum dolor\x00\x00\x00\x00\xddq\x8e\x1d\x82\xc8\xef\xad\x00\x01)\x112\np\x0e\x1f\xb6\xf3}\x01\x00\x00\x00\x00\x04YZ'
을 그리고 프로그램은 _lzma.LZMAError: Input format not supported by decoder
에 맞춰 18 일에 실패
import lzma
s = 'Lorem ipsum dolor'
bytes_in = s.encode('utf-8')
print(s)
print(bytes_in)
# Compress
lzc = lzma.LZMACompressor(format=lzma.FORMAT_XZ)
lzc.compress(bytes_in)
bytes_out = lzc.flush()
print(bytes_out)
# Decompress
bytes_decomp = lzma.decompress(data=bytes_out, format=lzma.FORMAT_XZ)
print(bytes_decomp)
나는이 출력을 얻을.
- 방법
lzma.compress
의 출력이 너무 이상 겉보기 같은 일을하더라도lzma.LZMACompressor.compress
보다 올 :
여기 3 개 질문이? - 두 번째 예에서 압축 해제 기가 잘못된 형식에 대해 불만을 제기하는 이유는 무엇입니까?
- 두 번째 예를 올바르게 압축 해제하려면 어떻게해야합니까?