【问题标题】:Hide a specific output message from terminal when excuting a python script?执行python脚本时隐藏终端的特定输出消息?
【发布时间】:2016-09-14 17:58:51
【问题描述】:

我正在执行一个使用patoollibrary(用于创建/提取压缩档案的库)的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/

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

【问题讨论】:

    标签: python python-2.7 command-line terminal


    【解决方案1】:

    经过阅读,我找到了解决这个烦人问题的简单方法。修复程序在他们的文档中。正如您在 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 隐藏所有标准打印,请使用:

    patoolib.extract_archive(path_to_file, outdir=path_to_unzip, verbosity=-1)
    

    代替:

    patoolib.extract_archive(path_to_file, outdir=path_to_unzip)
    

    希望这会有所帮助:)

    【讨论】:

      【解决方案2】:

      我认为您需要的是使用日志库(如logging)。因此,您将由于脚本的行为(信息/成功/错误)与脚本的输出(您想要显示的内容)隔离开来。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-26
        • 1970-01-01
        • 2015-07-04
        • 2014-12-14
        • 2011-06-16
        • 2021-07-12
        • 2017-12-26
        • 2011-05-18
        相关资源
        最近更新 更多