Python自动化脚本指南:PyAutoGUI安装与核心功能详解

林舟
林舟
发布时间:2026-10-16| 4人浏览过
原创

本文详细介绍Python自动化库PyAutoGUI的安装方法及核心用法。涵盖屏幕坐标系统、鼠标移动点击拖动、键盘按键模拟、截图定位及弹窗交互等关键功能,提供具体代码示例,帮助开发者快速掌握桌面自动化脚本编写技巧。

前言

本文整理自对Python中PyAutoGUI库的学习实践,该库是编写桌面自动化脚本的重要工具,旨在分享相关经验以协助读者掌握其使用方法。

注意:在初步测试中发现,PyAutoGUI对Google Chrome浏览器的click点击操作可能存在失效情况,其他浏览器或应用暂未发现此问题。

PyAutoGUI的安装

可通过命令行工具cmd执行pip install pyautogui命令来安装该库。

鼠标控制基础

鼠标控制基于屏幕像素坐标系统。以1920×1080分辨率为例,屏幕左上角为原点(0,0),水平向右为x轴(共1920像素),垂直向下为y轴(共1080像素)。整个屏幕可视作仅包含第一象限的坐标系。

获取屏幕分辨率

具体示例如下:


from pyautogui import size
x,y=size()
print(x,y)

获取鼠标当前坐标


from pyautogui import position
x,y=position()
print(x,y)

鼠标移动操作

moveTo函数用于将鼠标指针移动至屏幕指定绝对坐标位置。

已知左上角坐标为(0,0),右下角坐标为(1920,1080)。具体移动示例如下:


from pyautogui import moveTo
moveTo(1684,1059,duration=3)#1684和1059是要移动到的位置,duration表示执行该移动的时间,单位是秒

moveRel函数用于基于当前鼠标位置进行相对移动。


from pyautogui import moveTo,moveRel
 
moveRel(100,200,duration=2)
#从当前鼠标所在的位置移动到向右100,向下200的位置,过程时间设定为2秒

鼠标点击操作

click函数用于执行鼠标单击操作。


​
from pyautogui import click
#click中指定了坐标,也是可以设置从执行到点击这个位置的duration时间,以及左边,中间还是右键
click(100,200,button='left',duration=2)
click(100,200,button='middle')
click(100,200,button='right')

doubleClick函数用于执行鼠标双击操作。


from pyautogui import doubleClick
#参数与单击相同,只不过现在是双击鼠标
doubleClick(100,200,button='left',duration=2)
doubleClick(100,200,button='middle')
doubleClick(100,200,button='right')

mouseDown与mouseUp函数分别用于模拟鼠标按键按下和释放动作。


from pyautogui import mouseDown,mouseUp
mouseDown()   # 鼠标按下
mouseUp()    # 鼠标释放

鼠标拖动操作

dragTo函数用于将鼠标拖动至指定绝对坐标位置。

dragRel函数用于基于当前位置进行相对拖动操作。

鼠标拖动与移动功能类似,但在实际测试中发现二者在窗口拖动场景下存在差异。


from pyautogui import moveTo,mouseDown,mouseUp
 
mouseDown(button='left')
moveTo(1000,500)
mouseUp(button='left')

from pyautogui import dragTo,mouseDown,mouseUp
 
mouseDown(button='left')
dragTo(1000,500)
mouseUp(button='left')

测试表明,使用moveTo结合鼠标按下与释放可实现窗口拖动,而直接使用dragTo函数可能无法实现相同效果。

鼠标滚动操作


from pyautogui import scroll
 
scroll(300)#传入一个整数,正数表示向上滑动滚轮
scroll(-300)#向下滑动滚轮

屏幕截图与定位

screenshot函数用于截取全屏图像。

截取的图片默认保存在脚本文件所在的同一目录下。


from pyautogui import screenshot
screenshot().save('屏幕截图.png')#jpg格式也支持,其他格式请尝试

crop函数可用于截取任意指定区域的图像,例如crop((x,y,width,height))。

locateOnScreen函数用于在屏幕上查找与指定截图匹配的位置。

该函数在屏幕上搜索与保存的截图图像完全匹配的区域坐标。


from pyautogui import locateOnScreen
print(locateOnScreen('屏幕截图.png'))

键盘输入控制

keyDown与keyUp函数分别用于模拟键盘按键按下和释放。

通过组合keyDown和keyUp可实现多键同时按下,例如Ctrl+V粘贴。为实现多键组合,还可使用hotkey('ctrl','c')函数,该函数接受多个参数,按传入顺序依次按下按键,再按相反顺序依次释放。


from pyautogui import keyDown,keyUp
keyDown('space')   # 按下空格键
keyUp('space')    # 释放空格键
 
keyDown('ctrl')   
keyDown('c')
keyUp('c') 
keyUp('ctrl') 
 
hotkey('ctrl','c')
 

press函数用于按键后立即释放。

press可视为按下与释放的组合操作,例如发送消息后按Enter键,按下即释放,因此press应用较为广泛。

字母大小写不影响按键识别,例如Enter键可编写为press('enter')或press('ENter')。

部分键位有左右之分,如Shift键,可通过添加left或right后缀指定,例如press('shiftleft')。

需特别说明,Enter键公认代表换行,可用\n代替,即press('enter')等价于press('\n');Tab键可用\t代替。

上下左右方向键分别对应up、down、left、right。

typewrite函数用于连续输入文本。

typewrite函数能够识别并处理输入内容的大小写。


from pyautogui import typewrite
typewrite('ceshi',0.5)
#第一个参数是要输入的内容,第二个参数是每次按键的间隔时间
typewrite(['c','e','s','h','i'])
#也可以传入一个单个字符串的列表
typewrite(['S','u','n'])#typewrite('Sun',0.5)
#将会输入大写的S

提示信息与交互

提示框


from pyautogui import alert
print(alert(text='一个测试',title='test'))
#点击确定后将返回OK

选择框


from pyautogui import confirm
print(confirm('请选择性别',buttons=['男','女']))
#将输出你的点击项

密码输入框


from pyautogui import password
print(password('请输入你的密码'))
#将输出刚才输入的密码

普通内容输入框


from pyautogui import prompt
print(prompt('请输入你的账号'))
#将返回刚才输入的内容

总结

本文介绍了Python脚本库PyAutoGUI的安装与使用方法,更多相关PyAutoGUI安装使用内容可搜索本站历史文章或继续浏览后续文章,感谢支持。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。