使用exec执行一段Python代码并捕获其所有输出?

9 投票
1 回答
6284 浏览
提问于 2025-04-16 11:16

有没有什么好的方法可以执行一段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()

撰写回答