Python中PyAutoGUI 库的使用
目录
- 一、PyAutoGUI 库简介
- 二、安装与环境配置
- 三、核心功能与常用函数
- 1. 鼠标控制
- 2. 键盘操作
- 3. 屏幕与图像识别
- 4. 窗口管理与高级控制
- 四、应用场景与实战案例
- 五、注意事项与优化技巧
一、PyAutoGUI 库简介
PyAutoGUI 是 python 生态中 功能最全面的图形界面自动化库,通过模拟鼠标、键盘操作和屏幕图像识别,实现跨平台(Windows/MACOS/linux)的自js动化任务。其核心价值在于:
- 解放重复劳动:自动化数据录入、文件整理、报表生成等耗时操作,效率提升 90% 以上。
- 精准控制能力:支持像素级坐标定位(误差 ±0.5 像素)、亚秒级操作延迟(可配置 0.01 秒精度)。
- 智能图像识别:通过截图匹配动态定位界面元素(如按钮、文本框),解决因窗口位置变化导致的脚本失效问题。
- 安全可靠:内置防误触机制(如失效安全点)、操作日志记录和多线程安全锁,保障自动化流程的稳定性。
二、安装与环境配置
安装命令:
pip install pyautogui # 核心库 pip install Pillow # 图像处理依赖(截图功能必需)
验证安装:
import pyautogui print(pyautogui.__version__) # 输出版本号(如 0.9.54)
全局安全配置(防止脚本失控):
pyautogui.FAILSAFE = True # 鼠标移至左上角时自动终止程序[2](@ref) pyautogui.PAUSE = 0.5 # 每次操作后暂javascript停 0.5 秒[2](@ref)
三、核心功能与常用函数
1. 鼠标控制
函数/方法 | 功能描述 | 参数说明 |
---|---|---|
pyautogui.moveTo(x, y, duration) | 移动鼠标到绝对坐标 (x, y) | duration :移动耗时(秒),设为 0 则瞬间完成 |
pyautogui.moveRel(dx, dy, duration) | 相对当前位置偏移 (dx, dy) | 常用于动态调整位置(如拖拽文件) |
pyautogui.click(x, y, clicks, button) | 点击操作(左键/右键/双击) | button :'left' (默认)、'right' 、'middle' |
pyautogui.dragTo(x, y, duration) | 拖拽到目标位置 | 需先按住鼠标,常用于文件拖放或绘图软件操作 |
pypythonautogui.scroll(units) | 滚动鼠标滚轮 | units :正数向上滚动,负数向下 |
示例:自动化文件拖放
pyautogui.moveTo(100, 200, duration=1) # 移动至文件位置 pyautogui.dragTo(500, 300, duration=2) # 拖拽至目标文件夹
2. 键盘操作
函数/方法 | 功能描述 | 参数说明 |
---|---|---|
pyautogui.write(text, interval) | 模拟键盘输入文本 | interval :字符输入间隔时间(秒) |
pyautogui.press(keys) | 按下并释放单个按键(如 'eCZBwAnter' 、'tab' ) | 支持 200+ 种按键(见 pyautogui.KEYBOARD_KEYS ) |
pyautogui.hotkey(*keys) | 组合快捷键(如 'ctrl+c' ) | 自动处理按键顺序(按下 ctrl → 按下 c → 释放 c → 释放 ctrl ) |
pyautogui.keyDown(key) / keyUp(key) | 分别处理按键的按下和释放 | 用于长按操作(如游戏角色移动) |
示例:自动填写表单
pyautogui.write('张三', interval=0.1) # 输入姓名 pyautogui.press('tab') # 切换至下一输入框 pyautogui.write('13812345678') # 输入手机号 pyautogui.hotkey('ctrl', 's') # 保存表单[6](@ref)
3. 屏幕与图像识别
函数/方法 | 功能描述 | 参数说明 |
---|---|---|
pyautogui.screenshot(region) | 截取屏幕区域图像 | region :指定区域 (x, y, width, height),默认全屏 |
pyautogui.locateOnScreen(image, confidence) | 在屏幕上匹配目标图像位置 | confidence :匹配精度(0~1),推荐 0.8 以上 |
pyautogui.locateCenterOnScreen(image) | 返回匹配图像的中心坐标 | 常用于点击动态位置的按钮 |
pyautogui.pixel(x, y) | 获取指定像素点的 RGB 颜色值 | 用于判断界面状态(如按钮是否高亮) |
示例:智能点击动态按钮
button_pos = pyautogui.locateOnScreen('submit_button.png', confidence=0.9) if button_pos: x, y = pyautogui.center(button_pos) pyautogui.click(x, y) # 点击按钮中心[1,4](@ref) else: raise Exception("未找到提交按钮")
4. 窗口管理与高级控制
函php数/方法 | 功能描述 | 参数说明 |
---|---|---|
pyautogui.getWindowsWithTitle(title) | 获取指定标题的窗口对象 | 需配合 pygetwindow 库使用 |
pyautogui.alert(text) | 弹出确认对话框 | 阻塞程序直至用户点击 |
pyautogui.size() | 返回屏幕分辨率 (width, height) | 用于计算相对坐标 |
示例:多窗口协同操作
# 激活记事本窗口并输入内容 notepad = pyautogui.getWindowsWithTitle('记事本')[0] notepad.activate() pyautogui.write('自动录入文本', interval=0.1)
四、应用场景与实战案例
自动化办公
- Excel 报表生成:通过热键操作自动打开文件、填充数据并保存,耗时从 2 小时缩短至 2 分钟。
- 邮件批量发送:自动填写收件人、主题和附件,结合 Outlook 实现无人值守处理。
数据采集与测试
- 动态网页截图:定时截取网页数据并保存,用于监控价格或库存变化。
- UI 自动化测试:验证软件界面响应,替代人工点击操作。
游戏与娱乐
- 自动连招脚本:在游戏中模拟按键序列实现连续技能释放。
- 视频自动播放:通过图像识别跳过广告,自动切换剧集。
五、注意事项与优化技巧
兼容性优化
- 不同操作系统的坐标系统可能差异(如 macOS 的菜单栏高度),需动态计算偏移量。
- 高分辨率屏幕需调整图像识别参数(如
confidence=0.95
)。
性能提升
- 使用
pyautogui.locateAllOnScreen()
批量识别多个目标,减少截图次数。 - 启用多线程时需加锁(
with pyautogui.lock()
),防止操作冲突。
- 使用
异常处理
- 捕获
pyautogui.ImageNotFoundException
以处理图像识别失败。 - 记录操作日志(
pyautogui.logScreenshot()
)便于调试。
- 捕获
到此这篇关于Python中PyAutoGUI 库的使用的文章就介绍到这了,更多相关Python PyAutoGUI 库内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论