python - 将 Shutil.make_archive 与 zipfile.ZIP_STORED 一起使用吗?

标签 python compression zip shutil

在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 具有 zipfile 模块,则它会显式传递 compression=zipfile.ZIP_DEFLATED,而后备代码位于 line 634除了 -r-q 之外,不会将任何参数传递给 zip 命令行工具。

这是一个高级函数,可以使简单的情况变得更容易;如果你想做任何 zip/tar/gztar/bztar 特定的事情,你可以而且应该,使用底层库。

当然,如果您经常需要此功能,您可以编写自己的类似 make_archive 的包装器(只需从 shutil 中复制相关代码并修改您的副本)。

关于python - 将 Shutil.make_archive 与 zipfile.ZIP_STORED 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15750429/

相关文章:

c++ - 在 Redhat : alternatives to system() 上从 C++ 解压缩文件

python - 如何使用spark(python)读取zip文件中CSV文件的内容

python - 在 python 中创建不可变对象(immutable对象)的修改副本的最快方法

python - 在同一个窗口中绘制多种类型的图(折线图、散点图、条形图等)

coding-style - 首选 Python(或任何语言,真的)风格 : Should else be used when if returns?

image-processing - OpenCV imwrite 增加png图像的大小

python - 在Python中使用itertools帮助有效地获取矩阵的元素

c++ - WinApi压缩,python3中的解压缩

c# - LZ复杂度算法

c# - 是否可以在仅使用 .NET 或其他一些内置 Windows API 维护层次结构的同时解压缩 zip 文件?