pyautogui 和 schedule 不能一起工作
pyautogui and schedule are not working together
我正在编写一个每 10 秒按一个键的程序。为此,我结合使用了 pyautogui 和 schedule。
from pyautogui import press, typewrite, hotkey
import schedule
keystroke = "w"
def keypress():
press(keystroke)
schedule.every(10).seconds.do(keypress)
但是当我运行这个的时候,没有任何反应。我等了 10 秒钟,但没有键入任何键。我做错了什么?
让我们逐节检查您的代码,看看我们是否可以找出问题所在。
- 您导入一些库
- 您定义了一个函数,您希望每 10 秒 运行
- 您告诉默认调度程序您希望每 10 秒调用一次您的函数
- 然后你的程序终止
有两个有点相关的问题:
- 代码中没有任何地方告诉调度程序 运行 任何计划的作业
- 您的代码在任何计划作业 运行 之前立即终止
要解决这些问题,您需要让程序循环并让调度程序检查 运行 任何待处理的作业。
以下代码定义了一个简单的作业,并将其安排为每 10 秒 运行。然后它永远循环每秒检查挂起的作业。
import schedule
import time
def job():
print("Running....")
schedule.every(10).seconds.do(job)
while True:
schedule.run_pending()
time.sleep(1)
如果您想让程序做的只是循环并每 n 个时间单位执行 1 个动作,那么调度模块就太过分了。它更适用于有大量计划操作的复杂系统,所有这些操作都 运行 在不同的周期。