如何从python中的其他程序中捕获一个程序中的sys.exit值
Posted
技术标签:
【中文标题】如何从python中的其他程序中捕获一个程序中的sys.exit值【英文标题】:how to catch the sys.exit value in one program from other program in python 【发布时间】:2014-03-01 00:31:37 【问题描述】:我有一个 python 文件 a.py。我正在使用 sys.exit(some_val)
从文件中返回。
现在,我还有一个文件 b.py,我正在从中执行 a.py,如下所示:
proc = subprocess.Popen(cmd, stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell = True)
output, error = proc.communicate()
能否告诉我是否有任何方法可以从 b.py 获取值(使用 a.py 中的 sys.exit()
返回)?
【问题讨论】:
【参考方案1】:使用proc.returncode
:
print "a.py exited with code 0".format(proc.returncode)
【讨论】:
【参考方案2】:你可以从proc.returncode
得到返回码,但是通过子进程从另一个python程序调用一个python程序似乎是一件很奇怪的事情......
【讨论】:
是的。但是有大约 100 个测试用例文件。我没有手动运行每个脚本,而是编写了一个脚本,它将一个一个地运行所有存在的测试用例。为此,我使用了子流程。 @kadina:您可以使用nose
、py.test
、unittest
来发现和运行测试。以上是关于如何从python中的其他程序中捕获一个程序中的sys.exit值的主要内容,如果未能解决你的问题,请参考以下文章
如何捕获 URL 参数并基于 url 参数重定向到 angular4 中的其他组件