与zipfile.ZIP_STORED一起使用shutil.make_archive?

时间:2013-04-01 19:36:14

标签: python compression zip zipfile shutil

在Python中有没有办法使用shutil.make_archive()函数,文件压缩设置为zipfile.ZIP_STORED? (即未压缩的)

该文档显示有许多可选参数,但它们都没有设置文件压缩:

shutil.make_archive(base_name, format[, root_dir[, base_dir[, verbose[, dry_run[, owner[, group[, logger]]]]]]])

1 个答案:

答案 0 :(得分:3)

不,用shutil.make_archive无法做到这一点。

如果the docs中缺少相关标记的证据不充分,您可以查看the source

特别是,在line 683,您可以看到如果您的Python具有compression=zipfile.ZIP_DEFLATED模块,则显式传递zipfile,而line 634处的回退代码未通过除-r-q之外的任何参数zip命令行工具。

这是一个高级功能,使琐碎的案件更容易;如果你想做任何事情zip / tar / gztar / bztar - 具体,你可以而且应该使用底层库。

当然,如果您经常需要这个,您可以编写自己的make_archive - 就像包装一样(只需复制shutil中的相关代码并修改您的副本)。