如何根据 zip 文件的大小条件来压缩大量数据?

如何根据 zip 文件的大小条件来压缩大量数据?

我有大约 2 TB 的图像数据,想要将其分组到.zip文件中。各个文件的大小有所不同。

我想将所有这些文件放入 ZIP 档案中。任何.zip文件压缩后均不得超过 2 GB(出于安全考虑,不得超过 1.8 GB).zip。我无需担心制作多少个文件。

我该如何实现这一点?我认为,这里的关键任务是确定可以将多少个大小各异的文件放入 ZIP 存档中,以便存档的大小不超过 2 GB(无需压缩)。当然,整个过程必须自动化。我无法手动处理大约 80,000 张图片。

请建议实现此目标的方法。

答案1

Zip 对大多数数据的平均压缩率约为 62%。利用这一事实,您可以编写一个脚本,选择图像,直到它们的总大小为 (1.8 GB / 0.62) = ~2.9 GB,然后压缩该组图像,将原始图像移至某处,然后重复另一组图像,依此类推。

或者更简单地说,您可以利用单个 Zip 文件可以拆分这一事实。然后,您可以创建一个巨大的存档,并将其拆分成任意大小的较小文件,如下所述:https://superuser.com/questions/336219/how-do-i-split-a-zip-file-into-multiple-segments

其他格式(如 7-Zip)提供更好的压缩比,因此如果节省空间很重要,您可以考虑它们。

相关内容