python:在exec语句中获取打印输出
我想获取一个输出,exec(...)
这是我的代码:
code = """i = [0,1,2]
for j in i :
print j
"""
result = exec(code)
如何获得打印输出的内容?我如何得到类似的东西:
01
2
问候和感谢。
回答:
我和Frédéric有着相同的想法,但是我写了一个上下文管理器来处理替换stdout:
import sysfrom io import StringIO
import contextlib
@contextlib.contextmanager
def stdoutIO(stdout=None):
old = sys.stdout
if stdout is None:
stdout = StringIO()
sys.stdout = stdout
yield stdout
sys.stdout = old
code = """
i = [0,1,2]
for j in i :
print j
"""
with stdoutIO() as s:
exec(code)
print("out:", s.getvalue())
以上是 python:在exec语句中获取打印输出 的全部内容, 来源链接: utcz.com/qa/411564.html