【发布时间】:2020-05-09 14:57:51
【问题描述】:
我正在尝试检索 python 脚本本身中任何命令行执行引发的错误(重要的是退出代码)。我正在为此使用子流程。当我执行任何错误命令时,它会像往常一样在终端中引发错误,但随后它会停止执行 python 文件并且我无法获取存储错误。
查看代码。 p_status 应该存储退出代码。但在打印之前,它会在终端抛出错误后停止脚本。
process = subprocess.Popen([<command>], stdout = subprocess.PIPE)
output = process.communicate()
p_status = process.wait()
print(p_status)
我经历了不同的解决方案并尝试了所有解决方案,但无法获得所需的结果。
【问题讨论】:
-
什么意思?如果您不希望脚本结束,则必须
except错误,但我怀疑该进程甚至是使用错误命令创建的。 -
您应该在
try-except块中执行此操作。在没有找到命令的地方,你应该捕获 'OSError` 异常 -
所以基本上我将使用 python 运行不同的应用程序。如果目录中不存在该应用程序,则会引发错误。我想抓住那个错误并使用它。我尝试使用
try和except,但由于没有创建任何进程,所以我不会出错。 P.S:对不起,如果我听起来很愚蠢。我对此很陌生。 -
谢谢@karolch。我相信它运作良好。不知道 OSError。
标签: python command-line subprocess exit-code