Python支持在zlib可用时压缩文件,ZIP_DEFLATE
请参阅: https://docs.python.org/3.4/library/zipfile.html
Linux上的zip
命令行程序支持-1
最快,-9
最佳。
有没有办法设置在Python zipfile
模块中创建的zip文件的压缩级别?
答案 0 :(得分:5)
zipfile
模块不提供此功能。在压缩期间,它使用来自zlib
- Z_DEFAULT_COMPRESSION
的常量。默认情况下,它等于-1。因此,您可以尝试手动更改此常量,作为可能的解决方案。
答案 1 :(得分:4)
从python 3.7 zipfile开始,添加了compresslevel参数。 (https://docs.python.org/3/library/zipfile.html)
我知道这个问题已经过时,但是对于像我这样的人来说,这个问题可能比公认的更好。
答案 2 :(得分:0)
Python3答案:如果您查看zipfile.ZipFile
构造函数,您将看到以下内容:
def __init__(self, file, mode="r", compression=ZIP_STORED, allowZip64=True,
compresslevel=None):
"""Open the ZIP file with mode read 'r', write 'w', exclusive create 'x',
or append 'a'.
...
compresslevel: None (default for the given compression type) or an integer
specifying the level to pass to the compressor.
When using ZIP_STORED or ZIP_LZMA this keyword has no effect.
When using ZIP_DEFLATED integers 0 through 9 are accepted.
When using ZIP_BZIP2 integers 1 through 9 are accepted.
"""
这意味着您可以在构造函数中传递所需的压缩:
myzip = zipfile.ZipFile(TESTFN2, "w", compression=zipfile.ZIP_STORED)