如何从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:您可以使用nosepy.testunittest 来发现和运行测试。

以上是关于如何从python中的其他程序中捕获一个程序中的sys.exit值的主要内容,如果未能解决你的问题,请参考以下文章

如何使用小程序从 Java 中的网络摄像头捕获视频?

如何捕获 URL 参数并基于 url 参数重定向到 angular4 中的其他组件

如何直接从 Web 应用程序中的内置网络摄像头捕获图像?

如何从其他 iOS 应用程序读取我应用程序的 Document 目录中的文档?

从 Perl 中的输出记录

python GAE中的动态下拉列表