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)
如果 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)