Python静默调用函数

less than 1 minute read

Published:

在使用python的某些库时,特别是 Github 上某些项目,有些函数会有一些状态的输出。当我们批处理数据执行函数时,有时候并不需要输出。下面分享一种,可以静默调用函数的方法。

例如使用cocoAPI,Evaluate的时候,会有一些输出。

>>> cocoEval.evaluate()
>>> cocoEval.accumulate()
Running per image evaluation...
Evaluate annotation type *keypoints*
DONE (t=0.02s).
Accumulating evaluation results...
DONE (t=0.00s).

静默输出的做法,就是替换输出流,示例如下

class NullWriter(object):
    def write(self, arg):
        pass
def test():
    print("This is a print test")
nullwrite = NullWriter()
oldstdout = sys.stdout
sys.stdout = nullwrite # disable output
try:
    test()
finally:
    sys.stdout = oldstdout # enable output