如何在变量中捕获'exec'执行的一些python代码的错误?

时间:2016-01-05 01:57:40

标签: python exec

首先抱歉我的英语,我是西班牙人; - )

我正在编写并接收一些Python代码的脚本,并捕获该代码将包含的输出和错误;这是我的代码:

import sys
from StringIO import StringIO

buffer_err = StringIO()
buffer_out = StringIO()

sys.stderr = buffer_err
sys.stdout = buffer_out

exec '''SOME PYTHON CODE'''

sys.stderr = sys.__stderr__
sys.stdout = sys.__stdout__

print buffer_err.getvalue()
print buffer_out.getvalue()

此代码可以很好地捕获不包含任何错误的Python代码的输出。

但问题出现的时候,代码包含一个或多个错误,然后我不知道为什么,exec没有结束,所有代码都从未执行过。

感谢您的关注,欢呼。

0 个答案:

没有答案