您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python:在exec语句中获取打印输出

python:在exec语句中获取打印输出

我和Frédéric有着相同的想法,但是我写了一个上下文管理器来处理替换stdout:

import sys
from 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 2022/1/1 18:25:26 有604人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶