在Stack Overflow上搜索后,我发现的所有结果都已过时。 我试图打印出exec命令的结果,如下面的代码所示:
code = """
i = [0,1,2]
for j in i :
print j
"""
from cStringIO import StringIO
old_stdout = sys.stdout
redirected_output = sys.stdout = StringIO()
exec(code)
sys.stdout = old_stdout
print redirected_output.getvalue()
现在我发现不再支持StringIO。我在NotePad ++上使用Python 2.7.6
。我每次尝试导入io时都告诉我该模块不受支持。
编辑:我忘了提到脚本正在加载到IronPython
c#
中,并且我希望返回exec代码的值,这样我就可以有一个带输出的文本框。
任何帮助将不胜感激,谢谢。
答案 0 :(得分:1)
您不需要StringIO
。此外,您需要缩进print
中的code
语句。以下内容可以正常使用:
code = """
i = [0,1,2]
for j in i :
print j
"""
exec(code)
将输出:
0
1
2