14

Python 2.7.4 zipfile 模块(使用 ZIP_DEFLATED)是否有明显更快的替代方法,用于将大量文件压缩到单个 zip 文件中?我查看了 czipfile https://pypi.python.org/pypi/czipfile/1.0.0,但这似乎专注于更快的解密(而不是压缩)。

我经常不得不处理大量图像文件(约 12,000 个 .exr 和 .tiff 文件组合的文件),每个文件的大小在 ~1MB 到 6MB 之间(所有文件约为 9 GB)成一个用于装运的 zip 文件。处理此压缩大约需要 90 分钟(在 Windows 7 64 位上运行)。

如果有人可以推荐一个不同的 python 模块(或者一个 C/C++ 库,甚至是一个独立的工具),它能够在比 zipfile 模块更短的时间内将大量文件压缩成一个 .zip 文件,那就是非常感谢(任何接近约 5-10% 的速度(或更多)都会非常有帮助)。

4

1 回答 1

11

正如 Patashu 提到的,外包给 7-zip 可能是最好的主意。

这里有一些示例代码可以帮助您入门:

import os
import subprocess

path_7zip = r"C:\Program Files\7-Zip\7z.exe"
path_working = r"C:\temp"
outfile_name = "compressed.zip"
os.chdir(path_working)

ret = subprocess.check_output([path_7zip, "a", "-tzip", outfile_name, "*.txt", "*.py", "-pSECRET"])

正如 martineau 所提到的,您可以尝试使用压缩方法。本页提供了一些有关如何更改命令行参数的示例。

于 2013-04-23T01:47:00.503 回答