Python 是否可以从调用exec获取退出代码?

Python 是否可以从调用exec获取退出代码?,python,Python,我正在使用exec执行另一个Python脚本。我想确定执行的脚本是否成功完成。在使用exec时,是否仍然需要获取退出代码?除了获取退出代码,还有其他选择吗 file_to_execute = sys.argv[1] # Want to find out if file_to_execute completed successfully exec(open(file_to_execute).read()) 一个选项是将其作为子进程运行: import subprocess returncode

我正在使用exec执行另一个Python脚本。我想确定执行的脚本是否成功完成。在使用exec时,是否仍然需要获取退出代码?除了获取退出代码,还有其他选择吗

file_to_execute = sys.argv[1]

# Want to find out if file_to_execute completed successfully
exec(open(file_to_execute).read())

一个选项是将其作为子进程运行:

import subprocess
returncode = 0
try:
    subprocess.check_output(['python', file_to_execute])
except subprocess.CalledProcessError as e:
    returncode = e.returncode

您当前的执行方法没有将其作为进程运行,因此没有退出代码。相反,
exec
直接执行Python代码,就像它出现在当前文件中一样。

一个选项是将其作为子进程运行:

import subprocess
returncode = 0
try:
    subprocess.check_output(['python', file_to_execute])
except subprocess.CalledProcessError as e:
    returncode = e.returncode

您当前的执行方法没有将其作为进程运行,因此没有退出代码。相反,
exec
直接执行Python代码,就像它出现在当前文件中一样。

没有退出代码。它不是在执行脚本,而是在当前脚本中执行一些Python代码。您期望的“退出代码”是什么?如果该代码没有成功执行,您只会得到一个错误。这不是您执行脚本的方式。看看。没有退出代码。它不是在执行脚本,而是在当前脚本中执行一些Python代码。您期望的“退出代码”是什么?如果该代码没有成功执行,您只会得到一个错误。这不是您执行脚本的方式。看看,明白了。我不能使用子流程,我需要使用exec解决我真正的问题。有没有办法确定执行的代码是否抛出异常?如果执行的代码抛出异常,它将在当前进程中抛出异常。明白了。我不能使用子流程,我需要使用exec解决我真正的问题。是否有任何方法可以确定执行的代码是否引发异常?如果执行的代码引发异常,它将在当前进程中引发异常。