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

2024-06-16 13:04:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在执行一个python脚本,它利用patool库(一个用于创建/提取压缩归档文件的库)。在

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

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/

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


Tags: 脚本消息利用错误filesxmlzipprogram
2条回答

我认为您需要的是使用一个日志库(比如logging)。因此,您可以将脚本行为(info/succes/errors)产生的信息与脚本的输出(要显示的内容)隔离开来。在

经过一番阅读,我找到了一个简单的办法来解决这个恼人的问题。修复在他们的文档中。正如您在their source code(此时,第679行)中看到的,patool只在verbosity选项小于或大于0时打印消息:

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)

因此,为了解决问题并隐藏patool中的所有标准打印,请使用:

^{pr2}$

而不是:

patoolib.extract_archive(path_to_file, outdir=path_to_unzip)

希望这有帮助:)

相关问题 更多 >