【发布时间】:2015-01-06 01:30:48
【问题描述】:
我有一个 python 脚本,我正在使用下面的子进程调用另一个脚本。
sp = subprocess.Popen("script.py --arg1 --arg2', cwd=GIVEN_PATH, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
while sp.poll() is None:
for out in iter(sp.stdout.readline,''):
self.log(out.rstrip())
这对我来说很好,但我想从 script.py 中获取任何异常。我知道我们可以获取 retcode 但我实际上需要获取完整的异常信息。
如果 script.py 引发
raise IOERROR("got an exception")
那么我需要知道这些信息。我们获取 sys.exc_info() 等的类似方式。
有什么办法可以做到吗?
提前致谢
【问题讨论】:
-
除了下面的答案之外,需要注意的是Python可以直接调用其他python模块,而不需要子进程,这将允许您捕获异常。这是你在这种情况下应该做的。
标签: python exception-handling subprocess