我正在使用命令行python脚本 - 在整个脚本中,我有很多信息,我正在print终端窗口,以便我可以跟随正在发生的事情.
使用OptionParser我想添加一个--quiet选项,这样我就可以使所有输出静音.我要寻找一个Python化的方式去了解整个脚本执行,这样我不会落得做这样的事情:
if not QUIET: # global variable set by OptionParser
print " my output "
Run Code Online (Sandbox Code Playgroud)
我是python的新手,确定有更好的方法.想法?
Ste*_*202 28
logging如果QUIET使用不同的日志级别,您可以使用并分配那些不应打印的内容.
编辑: THC4K的答案显示了如何执行此操作的示例,假设所有输出都应QUIET设置为静音.请注意,在Python 3 from __future__ import print_function中没有必要:
print = logging.info
logging.basicConfig(level=logging.WARNING if QUIET else logging.INFO,
format="%(message)s")
Run Code Online (Sandbox Code Playgroud)
对于不应该被沉默的重要输出--quiet,定义例如iprint:
iprint = logging.warning
Run Code Online (Sandbox Code Playgroud)
Joc*_*zel 13
可以通过运行它来使所有输出静音python myscript.py > /dev/null
更改脚本中的输出流:
if QUIET:
sys.stdout = open(os.devnull,'a')
sys.stderr = open(os.devnull,'a')
print something
Run Code Online (Sandbox Code Playgroud)
使用不同的打印功能
from __future__ import print_function
if QUIET:
def print(*args):
pass
print( something )
Run Code Online (Sandbox Code Playgroud)
使用日志记录和日志级别
from __future__ import print_function
import logging
logging.basicConfig(level=logging.INFO, format="%(message)s")
print = logging.info
if QUIET:
logging.basicConfig(level=logging.ERROR)
print( something )
Run Code Online (Sandbox Code Playgroud)