python-访问函数调用的打印输出

我的脚本的一部分从另一个模块(让我们称之为foo)中调用了一个函数(很久以前由其他人编写,现在我不想开始对其进行修改).
foo还会通过调用其他函数将有趣的事情写到stdout(但返回None).
我想访问foo写到stdout的这些有趣的东西.

据我所知,子进程用于调用通常从命令行调用的命令.我可以从脚本中调用的python函数是否具有等效功能?

我在使用python2.7,如果有关系

解决方法:

正如@JimDeville所说,您可以交换标准输出:

#!python2.7
import io
import sys
f=io.BytesIO()

def foo():
    print 'hello, world!'

save,sys.stdout = sys.stdout,f
foo()
sys.stdout = save
f.seek(0)
print f.read()

输出:

hello, world!
上一篇:bzoj 1072: [SCOI2007]排列perm 状压dp


下一篇:python-如何通过subprocess.Popen接收泡菜