Python 3.x 如何在LZMA压缩中使用“tarfile”时设置压缩级别?

Python 3.x 如何在LZMA压缩中使用“tarfile”时设置压缩级别?,python-3.x,python-3.7,lzma,tarfile,Python 3.x,Python 3.7,Lzma,Tarfile,在使用Python中用于LZMA(*.xz)压缩的tarfile模块创建归档文件时,是否有方法设置压缩级别 我正在使用以下构造,我想知道tarfile.open方法的compresslevel关键字参数是否也适用于LZMA压缩 tarfile.open(tar_file_path, 'w:xz', compresslevel=9) as tf: ... 在这方面没有什么帮助…看起来“压缩级别”不是“tarfile”中的选项 使用“lzma”模块是可能的 压缩设置可以指定为预设 压缩级别

在使用Python中用于LZMA(
*.xz
)压缩的
tarfile
模块创建归档文件时,是否有方法设置压缩级别

我正在使用以下构造,我想知道
tarfile.open
方法的
compresslevel
关键字参数是否也适用于LZMA压缩

tarfile.open(tar_file_path, 'w:xz', compresslevel=9) as tf:
    ...

在这方面没有什么帮助…

看起来“压缩级别”不是“tarfile”中的选项

使用“lzma”模块是可能的

压缩设置可以指定为预设 压缩级别(带有预设参数),或作为自定义的详细信息 过滤器链(带有过滤器参数)

预设参数(如果提供)应为介于0和9之间的整数 (包括在内),可选或使用恒定预设值设置。如果 既不提供预设也不提供过滤器,默认行为是使用 预设默认值(预设级别6)。预设值越高,生成的值越小 输出,但使压缩过程变慢

请查收

import lzma
my_filters = [
    {"id": lzma.FILTER_DELTA, "dist": 5},
    {"id": lzma.FILTER_LZMA2, "preset": 7 | lzma.PRESET_EXTREME},
]
with lzma.open("file.xz", "w", filters=my_filters) as f:
    f.write(b"blah blah blah")