python3 捕获执行cmd命令行的异常,如果命令行失败再次执行cmd命令,还是失败则输出保存
时间: 2024-12-16 09:30:53 浏览: 11
在Python 3中,可以使用`subprocess`模块来执行命令行(CMD)。为了捕获执行过程中可能出现的异常并处理它们,你可以这样做:
```python
import subprocess
command = 'your_command_here'
attempts = 0
max_attempts = 3 # 设置最大尝试次数
while attempts < max_attempts:
try:
output = subprocess.check_output(command, shell=True, stderr=subprocess.STDOUT)
print("Command executed successfully:")
print(output.decode('utf-8')) # 输出结果
break # 如果成功,跳出循环
except subprocess.CalledProcessError as e:
attempts += 1
print(f"Command execution failed with error code {e.returncode}. Retrying... ({attempts}/{max_attempts})")
# 如果命令失败,记录错误并尝试下一次,直到达到最大尝试次数
if attempts == max_attempts:
print("Maximum attempts reached. Saving the error:")
with open('error_log.txt', 'w') as f:
f.write(str(e))
print("Error saved to error_log.txt")
```
在这个例子中,我们首先设置了`command`变量为你想要执行的CMD命令。然后在一个循环里,尝试执行命令并捕获`CalledProcessError`异常,如果命令失败,会增加尝试次数并在控制台显示错误信息,并在达到最大尝试次数后将错误信息保存到文件中。
阅读全文