我需要使用Python zipfile模块或unix命令行实用程序按需创建ZIP存档。
要压缩的资源通常是> 1GB,不一定是压缩友好的。
如何有效地估算其创建时间/大小?
答案 0 :(得分:15)
从大文件中提取一堆小部件。也许64块每块64k。随机选择。
连接数据,压缩数据,测量时间和压缩比。由于您随机选择了文件的某些部分,因此您可能压缩了有代表性的数据子集。
现在,您所要做的就是根据测试数据的时间估算整个文件的时间。
答案 1 :(得分:3)
我建议您测量生产一定尺寸拉链所需的平均时间。然后根据该度量计算估计值。但是,如果您不知道数据压缩程度如何,我认为估计会非常粗糙。如果您想要压缩的数据每次都可以做出更好的预测,那么就会有一个非常相似的“配置文件”。
答案 2 :(得分:1)
如果有可能从python模块获得进展回调,我建议找出pr秒处理多少字节(通过简单地存储在文件中的位置,在第二个开始处,以及你在最后的位置) 。如果您有关于计算机的速度的数据,当然可以保存它,并将其用作下一个zip文件的基础。 (我通常在显示时间预测之前收集大约5个样本)
使用此方法可以为您提供Microsoft minutes ,因此您可以获得更多样本,以便将其平均化。如果你制作一个包含大量文件的zip文件就会出现这种情况,因为在压缩许多小文件时,与1个大文件相比,ZIP往往会变慢。
答案 3 :(得分:0)
如果您使用ZipFile.write()方法将文件写入存档,则可以执行以下操作:
如果您只是压缩一个非常大的文件,这将无效。我自己从来没有使用过zip模块,所以我不确定它是否可行,但是对于少量的大文件,也许你可以使用ZipFile.writestr()函数并以块的形式读入/压缩文件?