Python静默调用函数

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

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

1
2
3
4
5
6
7
>>> cocoEval.evaluate()
>>> cocoEval.accumulate()
Running per image evaluation...
Evaluate annotation type *keypoints*
DONE (t=0.02s).
Accumulating evaluation results...
DONE (t=0.00s).

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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

0%