对于压缩多个文件,我有以下要求(来自客户端)。
如果创建的 zip 文件小于 2**31-1 ~2GB,则使用压缩创建它(使用 zipfile.ZIP_DEFLATED),否则不要压缩它(使用 zipfile.ZIP_STORED)。
当前的解决方案是在没有 zip64 的情况下压缩文件并捕获 zipfile.LargeZipFile 异常,然后创建非压缩版本。
我的问题是是否值得尝试(大约)计算 zip 文件是否会超过 zip64 大小而不实际处理所有文件,以及如何最好地进行?压缩如此大量数据的过程很慢,最小化重复压缩处理可能会加快一点速度。
编辑:我会赞成这两种解决方案,因为我认为我可以从最大和最小文件大小和压缩比的组合中生成有用的启发式方法。不幸的是,此时 StackOverflow 阻止我投票(直到我的声誉高于 noob)。谢谢你的好建议。