如何让pynput.mouse每隔10秒重复执行鼠标操作共X次
实现方法
你只需要引入Python标准库time做间隔控制,配合循环指定执行次数即可。注意你原有单次执行代码存在一处写法错误:pynput.mouse.Controller的position是属性而非可调用方法,设置坐标时需要直接给属性赋值坐标元组,不能加括号传参。
完整可运行代码如下,你只需要修改开头配置区的总执行次数为你需要的X值即可:
import time from pynput.mouse import Button, Controller # ========== 配置项 按需修改 ========== TOTAL_RUN_TIMES = 10 # 替换为你需要的总执行次数X CLICK_INTERVAL = 10 # 点击间隔,单位:秒 TARGET_COORD = (660, 226) # 目标点击坐标 # ==================================== mouse = Controller() print(f"自动点击任务启动,将总共执行{TOTAL_RUN_TIMES}次,每次间隔{CLICK_INTERVAL}秒") for current in range(TOTAL_RUN_TIMES): # 移动鼠标到指定坐标 mouse.position = TARGET_COORD # 执行左键点击 mouse.click(Button.left, 1) # 也可以直接用click方法代替press+release,效果一致 print(f"第 {current+1} 次点击完成") # 最后一次点击完成后无需等待 if current != TOTAL_RUN_TIMES - 1: time.sleep(CLICK_INTERVAL) print("全部任务执行结束")
注:代码里用了
mouse.click(Button.left, 1)替代单独的press、release操作,是pynput封装好的点击方法,和你原有写法效果完全一致,代码更简洁。
运行注意事项
- 运行前确保已安装pynput依赖,未安装时在终端执行
pip install pynput完成安装 - macOS、开启UAC权限控制的Windows系统,需要给运行脚本的终端、Python解释器开启「辅助功能权限」「允许控制设备」相关权限,否则脚本无法正常移动、点击鼠标
- 如果你需要毫秒级精准的定时间隔,可以改用
time.perf_counter()做时间差校准,普通挂机、自动操作场景下直接用time.sleep()的精度完全够用
内容的提问来源于stack exchange,提问作者Taylor
相关产品推荐
相关产品推荐

