我有几个包含不同数量文件的目录,我想为每个目录创建zip文件,其中包含目录中的所有文件。这对于大多数目录来说都没问题,但是一个目录有很多文件,压缩整个目录会产生一个超过20GB的文件。我希望限制zip文件的最大大小,并将其分割成5GB的部分。有没有一种简单的方法使用Python实现这个功能?我现在正在使用zipfile模块,但是我没有看到一种方法可以告诉它在特定文件大小时自动拆分为多个zip文件。
如果你可以使用RAR而不是ZIP, 你可以尝试这个RAR-PACKAGE
from librar import archive
myRAR = archive.Archive("resultPath",base)
myRAR.add_file("FilePath")
myRAR.set_volume_size("5000000K") # split archive based on volume size 5 Gigabytes
更新:
那个RAR包已经过时,无法与Python 3一起使用,但是我们现在有更好的解决方案:
rar a -m5 -v10m myarchive movie.avi
这将压缩 movie.avi 并将其分割成 10 MB 的块(-v10m),使用最佳压缩比率(-m5)
更多信息: https://ubuntuincident.wordpress.com/2011/05/27/compress-with-rar-and-split-into-multiple-files/