python3捕获异常使用subrocess.run 如果异常再次执行subrocess.run,如果再次失败打印123
时间: 2024-12-16 10:32:32 浏览: 9
在Python中,你可以使用`try-except`语句以及`subprocess.run()`函数来捕获运行外部命令时可能出现的异常。如果你想在尝试运行`subprocess.run()`连续失败后打印特定信息(如123),你可以这样做:
```python
import subprocess
command = "your_command" # 替换为你需要执行的命令
for _ in range(3): # 设置最多尝试三次
try:
result = subprocess.run(command, capture_output=True, text=True)
if result.returncode == 0:
# 如果命令成功执行,处理结果
print(result.stdout)
else:
# 处理命令失败的情况
print(f"命令执行失败,错误码: {result.returncode}")
except subprocess.CalledProcessError as e:
print("命令执行出错:", str(e))
# 如果当前尝试失败,继续下一次尝试
continue
else:
break # 如果成功,跳出循环
# 如果所有尝试都失败,执行最后一次并打印123
else:
print("所有尝试均失败,打印123")
```
这里我们设置了最多尝试3次,在每次尝试后检查返回状态码,如果是非零值,则表示有异常发生。如果所有尝试都失败了(即`else`块执行),会打印"所有尝试均失败,打印123"。
阅读全文