为什么 gzip 不一致?
Why gzip is not consistent?
为什么这些行不会给我相同的结果?
>>> gzip.compress('same'.encode('ascii'))
b'\x1f\x8b\x08\x00\xe2\x0e0V\x02\xff+N\xccM\x05\x00D\xf1P\xfc\x04\x00\x00\x00'
>>> gzip.compress('same'.encode('ascii'))
b'\x1f\x8b\x08\x00\xe3\x0e0V\x02\xff+N\xccM\x05\x00D\xf1P\xfc\x04\x00\x00\x00'
这对单元测试来说很烦人。
gzip header 包含修改时间戳。
参见 here
对于单元测试,您可以跳过 header 并比较其余部分。
像这样:
a = gzip.compress('same'.encode('ascii'))
b = gzip.compress('same'.encode('ascii'))
a[5:] == b[5:]
不确定其中的值 5,但这似乎是它使用的 header 大小。
如前所述,gzip header 包含一个时间戳。如果您传递 -n 或 --no-name 选项(给 command-line zip 程序),这些将被省略。
为什么这些行不会给我相同的结果?
>>> gzip.compress('same'.encode('ascii'))
b'\x1f\x8b\x08\x00\xe2\x0e0V\x02\xff+N\xccM\x05\x00D\xf1P\xfc\x04\x00\x00\x00'
>>> gzip.compress('same'.encode('ascii'))
b'\x1f\x8b\x08\x00\xe3\x0e0V\x02\xff+N\xccM\x05\x00D\xf1P\xfc\x04\x00\x00\x00'
这对单元测试来说很烦人。
gzip header 包含修改时间戳。 参见 here
对于单元测试,您可以跳过 header 并比较其余部分。
像这样:
a = gzip.compress('same'.encode('ascii'))
b = gzip.compress('same'.encode('ascii'))
a[5:] == b[5:]
不确定其中的值 5,但这似乎是它使用的 header 大小。
如前所述,gzip header 包含一个时间戳。如果您传递 -n 或 --no-name 选项(给 command-line zip 程序),这些将被省略。