【发布时间】:2014-01-06 20:04:52
【问题描述】:
我有一个包含大量内容的文件(符号重 <>?!""''=:;),我希望部分压缩,我读取文件,转换为字节流,然后压缩。我希望压缩会模糊地像:
\x1f\x8b\x08\x00\x00\x92\x04 等等。
但是,结果更像:
\x1f\x8b\x08\x00\x00\xa60v?\x04{?X\x0eDa 等等。当然我应该得到 00 到 ff 范围内的十六进制值?
Python3代码的主要sn-p:
with open('somefile', 'r') as f:
for lines in f.readlines():
messages = (str(lines)).encode('ascii') #Or 'UTF-8' both produce funny results
compMessages = gzip.compress(messages) #Default level of 6 is fine here
return compMessages
我能找到的唯一有趣/相关的信息是
len(str(lines)) 是与 len(lines.encode('ascii')) 不同的值
请给点意见?
【问题讨论】:
-
嗯?你在期待什么?压缩流应该使用所有可能的字节值,所以我不知道你所说的“神秘”字节是什么意思。
-
我期待“纯十六进制”。也就是说\x00 和\xff 之间的值。不是
\xfaXg}之类的值
标签: python-3.x compression gzip zlib