文章目录一、PyAutoGUI环境安装与前置依赖1. 基础库安装2. 配套依赖库图像识别必装3. 系统特殊依赖说明4. 环境验证脚本二、PyAutoGUI核心基础函数鼠标键盘一鼠标控制全套操作1. 鼠标移动、定点移动2. 鼠标单击、双击、右键、长按拖拽3. 滚轮上下滚动二键盘输入全套操作1. 输入文字、回车换行2. 组合快捷键CtrlC、CtrlV、AltTab等3. 常用按键名称对照表三、截图与图像识别定位自动化核心能力1. 基础截图功能2. 图片匹配查找按钮3. 循环等待弹窗/按钮出现高频使用四、完整实战案例1办公表格自动批量录入数据五、完整实战案例2客户端软件自动登录流程图像识别版六、关键配置参数与安全中断机制1. 全局操作间隔2. 安全防卡死机制必开3. 图像匹配精度调节七、生产/办公自动化优化技巧很多新手刚接触桌面自动化时会踩坑坐标定位不准、不同分辨率脚本失效、程序运行卡顿、操作速度太快软件响应跟不上。本文从环境安装、基础函数、图像识别定位、完整实战案例到避坑优化方案全部落地所有代码复制即可运行适配Windows、MacOS、Linux全平台兼顾新手入门和办公自动化真实业务场景。一、PyAutoGUI环境安装与前置依赖1. 基础库安装PyAutoGUI核心库通过pip直接安装打开cmd/终端执行pipinstallpyautogui国内下载慢可切换清华镜像源加速pipinstallpyautogui-ihttps://pypi.tuna.tsinghua.edu.cn/simple2. 配套依赖库图像识别必装单纯鼠标键盘操作无需额外组件如果需要通过图片匹配按钮、弹窗实现精准定位必须安装OpenCV和pyscreezepipinstallopencv-python pyscreeze pillowPillow截图、图片处理底层依赖pyscreezePyAutoGUI内置截图工具opencv-python图像匹配大幅提升按钮识别准确率3. 系统特殊依赖说明Windows系统无需额外系统组件安装库后直接运行管理员权限运行脚本可避免部分软件拦截模拟操作。MacOS系统运行脚本前需要给终端、Python解释器开启屏幕录制、辅助控制权限否则鼠标键盘模拟会失效。Linux系统Ubuntu/CentOS需要安装系统图形依赖sudoapt-getinstallpython3-xlib scrot4. 环境验证脚本新建test_env.py运行测试库是否正常导入importpyautogui# 打印屏幕分辨率width,heightpyautogui.size()print(f当前屏幕宽{width}高{height})# 获取当前鼠标坐标x,ypyautogui.position()print(f当前鼠标坐标 X:{x}Y:{y})执行无报错、正常输出分辨率和鼠标坐标代表环境搭建完成。二、PyAutoGUI核心基础函数鼠标键盘一鼠标控制全套操作1. 鼠标移动、定点移动importpyautoguiimporttime# 鼠标移动到指定坐标(100,200)耗时0.5秒平滑移动pyautogui.moveTo(x100,y200,duration0.5)# 相对当前位置偏移移动向右200向下100pyautogui.moveRel(xOffset200,yOffset100,duration0.3)# 延迟等待给软件加载留出响应时间time.sleep(0.5)2. 鼠标单击、双击、右键、长按拖拽# 左键单击当前鼠标位置pyautogui.click()# 指定坐标左键单击pyautogui.click(x300,y400)# 右键单击pyautogui.rightClick(x300,y400)# 双击左键pyautogui.doubleClick(x300,y400)# 拖拽从当前位置拖动到(500,500)pyautogui.dragTo(500,500,duration0.4)# 相对拖拽pyautogui.dragRel(100,-100,duration0.3)3. 滚轮上下滚动# 向上滚动10格pyautogui.scroll(10)# 向下滚动20格pyautogui.scroll(-20)二键盘输入全套操作1. 输入文字、回车换行# 直接输入字符串支持中文Windows原生支持Mac/Linux需额外适配pyautogui.write(测试自动化输入文本,interval0.1)# interval控制每个字符输入间隔防止软件识别漏字# 按下回车键pyautogui.press(enter)# 连续按多次回车pyautogui.press(enter,presses2,interval0.2)2. 组合快捷键CtrlC、CtrlV、AltTab等# Ctrl A 全选pyautogui.hotkey(ctrl,a)# Ctrl C 复制pyautogui.hotkey(ctrl,c)# Ctrl V 粘贴pyautogui.hotkey(ctrl,v)# Alt Tab 切换窗口pyautogui.hotkey(alt,tab)# Ctrl S 保存pyautogui.hotkey(ctrl,s)3. 常用按键名称对照表esc、tab、shift、ctrl、alt、space、up、down、left、right、pageup、pagedown、backspace、delete、f1~f12三、截图与图像识别定位自动化核心能力固定坐标脚本换电脑、调整分辨率后直接失效图像匹配是通用解决方案截取软件按钮图片脚本自动在屏幕中查找对应位置并点击。1. 基础截图功能importpyautogui# 全屏截图保存到本地screen_imgpyautogui.screenshot()screen_img.save(screen.png)# 区域截图x,y,宽,高area_imgpyautogui.screenshot(region(0,0,500,300))area_img.save(area.png)2. 图片匹配查找按钮提前把软件里的按钮截图保存为btn_submit.png脚本自动识别坐标importpyautoguiimporttime# 查找图片在屏幕中的坐标confidence匹配精度0~1越高越严格try:# locateOnScreen找到图片区域target_pospyautogui.locateOnScreen(btn_submit.png,confidence0.8)# 获取图片中心点坐标center_x,center_ypyautogui.center(target_pos)# 点击按钮pyautogui.click(center_x,center_y)exceptExceptionase:print(未找到目标按钮检查截图或匹配精度)3. 循环等待弹窗/按钮出现高频使用软件加载慢、弹窗延迟弹出写循环持续检测找到后再执行操作importpyautoguiimporttimedefwait_click_img(img_path,wait_time10,confidence0.8):start_timetime.time()whiletime.time()-start_timewait_time:pospyautogui.locateOnScreen(img_path,confidenceconfidence)ifpos:x,ypyautogui.center(pos)pyautogui.click(x,y)returnTruetime.sleep(0.5)print(f{img_path}超时未找到)returnFalse# 调用等待提交按钮最多10秒出现自动点击wait_click_img(btn_submit.png)四、完整实战案例1办公表格自动批量录入数据业务场景打开Excel定位输入框循环录入多行文本自动换行保存纯桌面自动化无需调用Excel第三方库。importpyautoguiimporttime# 操作间隔防止操作过快软件无响应pyautogui.PAUSE0.6# 待录入数据列表input_data[张三,26,运营,李四,30,技术,王五,24,财务]# 定位Excel输入起始单元格提前获取坐标start_x,start_y250,320pyautogui.click(start_x,start_y)time.sleep(0.3)# 循环录入forlineininput_data:# 输入一行内容pyautogui.write(line)# 按下回车跳到下一行pyautogui.press(enter)time.sleep(0.2)# CtrlS保存文件pyautogui.hotkey(ctrl,s)print(数据录入完成)五、完整实战案例2客户端软件自动登录流程图像识别版不用固定坐标依靠图片识别登录按钮、输入框更换分辨率也能正常运行。目录结构auto_login/ ├── auto_login.py ├── img/ ├── username_input.png ├── password_input.png ├── login_btn.png自动化登录脚本importpyautoguiimporttime# 统一操作停顿时间pyautogui.PAUSE0.7# 封装等待点击函数defwait_click(img,wait10):pospyautogui.locateOnScreen(img,confidence0.7,timeoutwait)ifpos:pyautogui.click(pyautogui.center(pos))time.sleep(0.4)returnTruereturnFalse# 1. 点击用户名输入框wait_click(img/username_input.png)pyautogui.write(admin123)time.sleep(0.3)# 2. 点击密码输入框wait_click(img/password_input.png)pyautogui.write(mima456789)time.sleep(0.3)# 3. 点击登录按钮wait_click(img/login_btn.png)print(登录流程执行完毕)六、关键配置参数与安全中断机制1. 全局操作间隔所有鼠标键盘操作自动延迟避免操作过快软件卡顿# 每次操作后暂停0.5秒pyautogui.PAUSE0.52. 安全防卡死机制必开脚本失控、无限循环点击时将鼠标快速移动到屏幕左上角程序会直接抛出异常终止防止电脑被锁死# 开启安全故障中断pyautogui.FAILSAFETrue3. 图像匹配精度调节confidence参数取值0~10.6~0.7轻微色差、缩放界面也能识别容错高0.8~0.9匹配严格适合界面固定无变化的软件七、生产/办公自动化优化技巧统一设置PAUSE停顿时间不同软件加载速度不同统一延长操作间隔避免漏点击、漏输入文字。截图素材尽量高清截取按钮时只保留目标区域不要多余背景提升识别速度和准确率。区分固定坐标与图像识别固定界面、固定分辨率内网电脑可用坐标多设备、窗口可缩放场景一律用图像匹配。增加异常捕获循环操作外层增加try except识别不到按钮时打印日志不直接中断整个脚本。最小化其他窗口运行自动化脚本前关闭弹窗、广告避免遮挡目标按钮导致识别失败。管理员权限运行部分ERP、桌面客户端、加密软件会拦截模拟输入管理员启动Python脚本可解决。不要后台休眠运行电脑锁屏、休眠后无法读取屏幕画面图像识别功能完全失效。