python - Python3在异常期间阻止子进程执行
问题描述
如果 subprocess.run 因异常而失败,如何阻止和停止整个脚本执行?
例如,我有一个函数,我通过 subprocess.run 运行命令,如果该命令返回异常,我不希望下一个 subprocess.run 被执行并且想停止脚本执行并完全退出
解决方案
check=True
关键字参数已经做到了这一点;如果子进程没有返回成功(零)退出代码,它会引发异常。
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)
推荐阅读
- git - 当我们有功能分支时 Git rebase
- android - 如何从Android中的地图获取当前位置
- javascript - 是否可以在 svg 中定位具有使用 javascript 设置的填充属性的特定路径?
- powershell - 检查用户名列表,如果它们已经存在 Powershell
- swift - 在完成块中快速传递结构
- javascript - 在函数中间注入值
- javascript - 如何从 ui5 应用程序注销并重定向到另一个 ui5 应用程序登录?
- docker - Traefik 和我在容器中的 Web 应用程序
- android - 安装我的应用程序后,Android 启动器不断崩溃
- c# - 从动画控制器统一启用/控制游戏对象上的脚本?