python - 使用子进程python获取命令行执行抛出的错误

标签 python command-line subprocess exit-code

我正在尝试检索 python 脚本本身中的任何命令行执行引发的错误(重要的是退出代码)。我正在为此使用子进程。当我执行任何错误的命令时,它会像往常一样在终端中抛出错误,但随后它会停止执行 python 文件,并且我无法收到存储错误。

看代码。 p_status 应该存储退出代码。但在打印之前,它会在终端抛出错误后停止脚本。

process = subprocess.Popen([<command>], stdout = subprocess.PIPE)
output = process.communicate()
p_status = process.wait()
print(p_status)

我尝试了不同的解决方案,但无法获得所需的结果。

最佳答案

使用以下代码解决了这个问题:

try:
    subprocess.Popen([<command>], stdout = subprocess.PIPE)
except OSError as error:
    print(error.errno) #for exit code

P.S - 致谢@karolch

关于python - 使用子进程python获取命令行执行抛出的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59876836/

相关文章:

linux - 以 root 身份移动文件,保留所有权 linux

python - 在 python 中运行 bash 命令并处理错误

python - 如何使用 Python 和 Pytest 比较和测试字典列表中的特定键

python - 在循环初始化的内联中引用一个列表?

python - pip install dryscrape 失败,出现 "error: [Errno 2] No such file or directory: ' src/webkit_server'”?

c++ - 从 C++ 程序运行带参数的命令

python - 通过python在QGIS中获取质心

linux - 如何通过 sftp 通过命令行上传文件?

python - 为什么 subprocess.Popen 不起作用

python - 如何使 readline 在 python 子进程中工作?