如何重复运行Python脚本直到其无错误正常退出
解决方案
你现有代码的死循环问题根源是没有添加执行成功后的终止逻辑,while True会无限执行循环体:当my_script.main()抛出异常时会被except捕获后跳过进入下一轮循环,而当my_script.main()无异常运行完成时,没有任何终止指令,会直接进入下一轮循环,因此永远不会停止。
修正后的基础实现
import my_script if __name__ == '__main__': while True: try: my_script.main() # 执行到此处说明main函数无报错运行完成,跳出循环即可终止程序 break except Exception: # 按需添加重试延迟,避免频繁重试占用资源 # import time # time.sleep(1) pass
优化建议
- 不建议使用裸
except语句,它会捕获包括KeyboardInterrupt(Ctrl+C终止信号)在内的所有系统级异常,导致你无法手动终止程序,建议指定你需要重试的业务异常类型,或者至少用except Exception:过滤掉不需要捕获的基类异常。 - 如果需要限制最大重试次数,避免程序永远卡着重试,可以增加计数器逻辑:
import my_script MAX_RETRY = 5 if __name__ == '__main__': retry_count = 0 while retry_count < MAX_RETRY: try: my_script.main() break except Exception: retry_count += 1 print(f"执行失败,第{retry_count}次重试") else: print(f"已达到最大重试次数{MAX_RETRY},程序终止")
内容的提问来源于stack exchange,提问作者vojtam
相关产品推荐
相关产品推荐

