You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何重复运行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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:45:01