有没有办法抑制打印调用的输出



我正在寻找一个可以让任何打印静音的函数,所以例如,这一行什么都不做:

silence(print('hello'))

这无法使打印静音,因为printsilence:之前执行

silence(print('hello'))

另一方面,你可以这样做:

@contextlib.contextmanager
def silence():
    sys.stdout, old = io.StringIO(), sys.stdout
    try:
        yield
    finally:
        sys.stdout = old
with silence():
    print('hello')

silence()上下文中,所有打印都重定向到io.StringIO对象。您也可以选择在上下文末尾对收集到的打印进行处理。

最新更新