Python如何同时运行两个while True循环实现定时自动按键功能
问题原因
你的代码采用了嵌套的无限循环结构,Python默认单线程线性执行代码,进入内层while True后程序会一直卡在内层循环执行,永远不会回到外层逻辑,自然无法实现两个任务并行运行的效果。
解决方案1:单线程计时(推荐当前场景使用)
两个任务的执行间隔是整倍数关系,直接以最小间隔0.25秒为步长,通过计数判断是否需要执行输入s和e的逻辑即可,无额外依赖,实现简单:
import keyboard import time count = 0 while True: # 每0.25秒输入t keyboard.write("t") # 每2个步长(0.5秒)输入s和e if count % 2 == 1: keyboard.write("s") keyboard.write("e") count += 1 time.sleep(0.25)
解决方案2:多线程方案(适合后续扩展场景)
如果后续两个任务的执行间隔调整为非整倍数,可以用threading库开启独立线程分别运行两个循环,互不干扰:
import keyboard import time import threading def task_t(): while True: keyboard.write("t") time.sleep(0.25) def task_se(): while True: keyboard.write("s") keyboard.write("e") time.sleep(0.5) # 启动守护线程,主程序关闭时自动销毁子线程 threading.Thread(target=task_t, daemon=True).start() threading.Thread(target=task_se, daemon=True).start() # 主线程阻塞,避免程序直接退出 while True: time.sleep(1)
停止方式
运行脚本时如果要终止程序,在终端按Ctrl + C即可。
内容的提问来源于stack exchange,提问作者Scott Drake
相关产品推荐
相关产品推荐

