【发布时间】:2008-11-05 02:50:59
【问题描述】:
我对使用 Python 的 gzip 模块压缩数据很感兴趣。碰巧我希望压缩输出是确定性的,因为这对于一般事物来说通常是一个非常方便的属性——例如,如果某个非 gzip 感知进程正在寻找输出中的变化,或者如果输出将被加密签名。
很遗憾,每次输出都不一样。据我所知,唯一的原因是 gzip 标头中的时间戳字段,Python 模块始终使用当前时间填充该字段。我认为实际上不允许您使用没有时间戳的 gzip 流,这太糟糕了。
无论如何,Python 的gzip 模块的调用者似乎没有办法提供基础数据的正确修改时间。 (实际的gzip 程序似乎尽可能使用输入文件的时间戳。)我想这是因为基本上唯一关心时间戳的事情是写入文件时的gunzip 命令——而且,现在,我,因为我想要确定性的输出。有这么多要问的吗?
还有其他人遇到过这个问题吗?
从 Python 中gzip 一些带有任意时间戳的数据最不可怕的方法是什么?
【问题讨论】: