【问题标题】:Zipping files with maximum size limit以最大大小限制压缩文件
【发布时间】:2013-11-26 23:10:07
【问题描述】:

我有几个目录包含不同数量的文件,我想为每个目录创建包含目录中所有文件的 zip 文件。这对他们中的大多数人来说都很好,但是一个目录有更多的文件,压缩整个文件会产生 20GB+ 的文件。我宁愿限制 zip 文件的最大大小并将其拆分为 5GB 的部分。有没有一种简单的方法可以用 Python 做到这一点?我现在正在使用 zipfile 模块,但我没有看到一种方法来告诉它自动拆分为特定文件大小的多个 zip。

【问题讨论】:

    标签: python zipfile


    【解决方案1】:

    如果你可以使用 ZIP 的 RAR, 你可以试试这个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
    

    【讨论】:

      【解决方案2】:

      更新:

      那个 rar-package 已经过时了,不能与 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/

      【讨论】: