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

Python中while True无限循环无法持续运行问题求助

问题分析与修复方案

核心问题

你的代码里处理KeyboardInterrupt的逻辑完全错误:if KeyboardInterrupt:只是检查这个异常类是否存在,永远为True,所以第一次循环就会执行break直接退出,这就是无法无限运行的原因。另外还有几个潜在问题需要修正。

修复后的代码

import time
import pyautogui

time.sleep(5)

try:
    while True:
        time.sleep(5)
        # 点击打开新标签页的位置
        pyautogui.moveTo(455, 620)
        pyautogui.click()

        time.sleep(5)
        # 点击关闭标签页的位置
        pyautogui.moveTo(890, 15)
        pyautogui.click()
except KeyboardInterrupt:
    # 按下Ctrl+C时优雅终止程序
    print("程序已终止")

关键修正点

  • 正确捕获中断信号:用try-except块包裹循环,当按下Ctrl+C时会触发KeyboardInterrupt异常,此时执行退出逻辑,替代原代码里无效的判断方式。
  • 移除冗余代码:原代码里的else: continue完全多余,while True本身会自动循环。
  • 可选优化:改用快捷键(更稳定):如果担心固定坐标受窗口位置、分辨率影响,可以用Chrome快捷键替代点击操作,可靠性更高:
    • 打开新标签页:pyautogui.hotkey('ctrl', 't')
    • 关闭当前标签页:pyautogui.hotkey('ctrl', 'w')

额外注意事项

  • 运行前确保Chrome窗口处于前台,否则点击可能作用在其他程序上。
  • 如果程序仍意外终止,可添加通用异常捕获排查问题:
except Exception as e:
    print(f"出现错误: {e}")

内容的提问来源于stack exchange,提问作者Theo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:32:03