压缩一个句子
Compress a Sentence
我正在研究用户句子的压缩和解压缩代码。
我做了这个代码:
import gzip
sentence = input(b"Please enter a sentence ")
varNameIn = (b"sentence")
varNameOut = gzip.compress(varNameIn)
print(varNameOut)
varNameDecon = gzip.decompress(varNameOut)
print(varNameDecon)
但似乎有些不对劲。它适用于以下输出:
b'请输入一句话'gn h
b'\x1f\x8b\x08\x00Z\xedxX\x02\xff+N\xcd+I\xcdKN\x05\x00\xd5Nf\x9d\x08\x00\x00\x00'
b'句子'
为什么它显示 b'句子' 而不是用户的句子,当它要求句子时为什么它显示 b' ' 而不是请输入...
我被告知 b' ' 将使句子在代码的未来步骤中压缩。
有什么帮助吗?
谢谢
b"sentence"
不会将 sentence
转换为 bytes
值。您需要 encode a string to bytes 来代替。选择适合您用例的编解码器;这里编码为 UTF-8 可能是最好的,因为它可以编码所有 Unicode,对于西方文本具有合理的小尺寸:
sentence = input("Please enter a sentence ")
varNameIn = sentence.encode('utf8')
varNameOut = gzip.compress(varNameIn)
注意 input()
总是 returns 一个 str
类型,给它一个 bytes
提示不会改变它。
请注意,当您再次解压缩数据时,您仍然会有一个 bytes
对象。如果您想将其转回 str
对象,decode from bytes
to str
使用相同的编码:
varNameDecon = gzip.decompress(varNameOut)
print(varNameDecon.decode('utf-8'))
我正在研究用户句子的压缩和解压缩代码。 我做了这个代码:
import gzip
sentence = input(b"Please enter a sentence ")
varNameIn = (b"sentence")
varNameOut = gzip.compress(varNameIn)
print(varNameOut)
varNameDecon = gzip.decompress(varNameOut)
print(varNameDecon)
但似乎有些不对劲。它适用于以下输出:
b'请输入一句话'gn h b'\x1f\x8b\x08\x00Z\xedxX\x02\xff+N\xcd+I\xcdKN\x05\x00\xd5Nf\x9d\x08\x00\x00\x00' b'句子'
为什么它显示 b'句子' 而不是用户的句子,当它要求句子时为什么它显示 b' ' 而不是请输入... 我被告知 b' ' 将使句子在代码的未来步骤中压缩。 有什么帮助吗? 谢谢
b"sentence"
不会将 sentence
转换为 bytes
值。您需要 encode a string to bytes 来代替。选择适合您用例的编解码器;这里编码为 UTF-8 可能是最好的,因为它可以编码所有 Unicode,对于西方文本具有合理的小尺寸:
sentence = input("Please enter a sentence ")
varNameIn = sentence.encode('utf8')
varNameOut = gzip.compress(varNameIn)
注意 input()
总是 returns 一个 str
类型,给它一个 bytes
提示不会改变它。
请注意,当您再次解压缩数据时,您仍然会有一个 bytes
对象。如果您想将其转回 str
对象,decode from bytes
to str
使用相同的编码:
varNameDecon = gzip.decompress(varNameOut)
print(varNameDecon.decode('utf-8'))