我的脚本的一部分从另一个模块(让我们称之为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!