我的部分脚本调用了一个函数(让我们称之为foo
)另一个模块(很久以前由其他人编写,我现在不想开始修改)。
foo
将有趣的东西写入stdout
(但返回None
),部分是通过调用其他函数。
我想访问foo
写给stdout
的这些有趣的事情。
据我所知,subprocess
用于调用我通常从命令行调用的命令。我可以从我的脚本调用python函数的等效函数吗?
我在python2.7上,如果重要
答案 0 :(得分:4)
正如@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!