在Python中,有没有一种方法可以使用shutil.make_archive()
函数并将文件压缩设置为zipfile.ZIP_STORED
? (即未压缩)
该文档显示,有许多可选参数,但是它们都不设置文件压缩:
shutil.make_archive(base_name, format[, root_dir[, base_dir[, verbose[, dry_run[, owner[, group[, logger]]]]]]])
最佳答案
不,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
中复制并修改副本)。