假设我有一个由三行组成的python程序。
if __name__=“__main__”:
foo( )
print “Hello”
这里,foo( )
是第三部分函数,它将事物输出到标准输出。例如,foo( )
只有一行print 'I am here'
。关键是我无权更改可能包含输出语句的 foo(),并且我不想将其输出与我的输出混合。
问题:
如何更改上面程序的第三行(打印“Hello”),以便该程序
1.只打印“Hello”和
2.不打印foo( )
的任何内容?
感谢您的想法。
答案 0 :(得分:3)
您可以将stdout
重定向到os.devnull
(空设备);以下内容:
import os
import sys
def foo():
print "foo"
if __name__ == "__main__":
out = sys.stdout
null = open(os.devnull, 'w')
sys.stdout = null
foo()
sys.stdout = out
print "Hello"
将打印Hello
。您可以阅读有关空设备here的信息。