使用exec执行一段Python代码并捕获其所有输出?
有没有什么好的方法可以执行一段Python代码,比如说 exec mycode
,并把它打印到屏幕上的所有内容都收集到一个字符串里呢?
1 个回答
11
试着像下面这个代码片段一样,替换掉默认的 sys.stdout:
import sys
from StringIO import StringIO
buffer = StringIO()
sys.stdout = buffer
exec "print 'Hello, World!'"
#remember to restore the original stdout!
sys.stdout = sys.__stdout__
print buffer.getvalue()