Python3 在异常期间阻止子进程执行

Python3 block subprocess execution during exception

如果 subprocess.run 因异常而失败,如何阻止和停止整个脚本执行?

例如,我有一个函数,其中我通过 subprocess.run 运行 命令,如果该命令 returns 出现异常,我不希望下一个 subprocess.run被执行并想停止脚本执行并完全退出

check=True 关键字参数已经做到了这一点;如果子进程没有 return 成功(零)退出代码,它会引发异常。

import subprocess
import logging
import sys

commands = ('true', ['sh', '-c', 'true'], 'false', ['echo', 'hello'])
for cmd in commands:
    try:
        subprocess.run(cmd, check=True)
    except subprocess.CalledProcessError:
        logging.error('%r failed', cmd)
        sys.exit(1)