执行 python 脚本时隐藏终端的特定输出消息?

Kha*_*ged 2 python terminal command-line python-2.7

我正在执行一个利用patool库(用于创建/提取压缩档案的库)的Python脚本。

问题是,当我运行脚本时,它会给出以下几行:

patool: Extracting D:/xx/xx/xx.xml.gz
patool: running "C:\Program Files\7-Zip\7z.EXE" e -o D:/xx/xx/ -- D:/xx/xx/xx.xml.gz
patool: ... D:/xx/xx/ -- xx.xml.gz extracted to D:/xx/xx/
Run Code Online (Sandbox Code Playgroud)

这些显然不是错误行。他们只是告诉我发生了什么事。我需要在执行脚本时隐藏这些行。但只有这个消息,我的意思不是 其他类型的消息,例如错误消息。

Pal*_*ini 5

经过一番阅读后,我发现一个简单的方法可以解决这个恼人的问题。修复方法在他们的文档中。正如您在源代码中看到的那样(此时为第 679 行),仅当option等于或大于时才patool打印消息:verbosity0

def extract_archive(archive, verbosity=0, outdir=None, program=None, interactive=True):
    """Extract given archive."""
    util.check_existing_filename(archive)
    if verbosity >= 0:
        util.log_info("Extracting %s ..." % archive)
    return _extract_archive(archive, verbosity=verbosity, interactive=interactive, outdir=outdir, program=program)
Run Code Online (Sandbox Code Playgroud)

因此,为了解决您的问题并隐藏所有标准打印以防止patool使用:

patoolib.extract_archive(path_to_file, outdir=path_to_unzip, verbosity=-1)
Run Code Online (Sandbox Code Playgroud)

代替:

patoolib.extract_archive(path_to_file, outdir=path_to_unzip)
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助 :)