1. pyautogui介绍
PyAutoGUI是一个自动化鼠标和键盘输入的Python第三方模块。在这个模块的帮助下,我们可以编写脚本来控制计算机的鼠标和键盘,以执行文字处理、图像处理等自动化办公操作。
1.1 安装pyautogui
安装非常简单,打开cmd或powershell,使用pip安装即可。
pip install pyautogui
2. pyautogui基本用法
pyautogui模块可以控制鼠标的移动、点击和拖拽;模拟按键的按下和弹起操作;以及组合键的操作等。下面我们来逐个讲解。
2.1 鼠标操作
2.1.1 移动鼠标
pyautogui.moveTo()函数可以控制鼠标的移动,它接收两个参数x和y,分别代表鼠标的横坐标和纵坐标。
import pyautogui
pyautogui.moveTo(100, 100)
2.1.2 点击鼠标
pyautogui.click()函数可以用于模拟鼠标的点击操作。默认点击左键,也可以指定点击的鼠标键。
import pyautogui
pyautogui.click(100, 100)
2.1.3 拖拽鼠标
pyautogui.dragTo()函数可以用于模拟鼠标的拖拽操作,它接收两个参数x和y,分别代表目标位置的横坐标和纵坐标。
import pyautogui
pyautogui.dragTo(100, 100)
2.2 键盘操作
2.2.1 按下和弹起键盘按键
pyautogui模块的按键操作与键盘操作是一样的。我们可以使用press()函数模拟按下键盘按键;使用release()函数模拟弹起键盘按键。
import pyautogui
pyautogui.press('enter')
pyautogui.press('a')
pyautogui.release('a')
2.2.2 组合键操作
pyautogui的实现方式是按下所有组合键,然后依次弹起组合键。
import pyautogui
pyautogui.hotkey('ctrl', 'c')
2.3 图像识别
PyAutoGUI对于一些标志性的图片可以进行视觉识别,结合操作可以完成比较复杂的工作。
2.3.1 定位图片
下面的代码演示了如何在屏幕的(posX,posY)位置以及指定搜索图片的宽和高的范围内,找到给定名称的图片(image)。
import pyautogui
pos = pyautogui.locateOnScreen('image.png')
print(pos)
2.3.2 点击图片
在找到图片后,可以使用click()函数进行点击。
import pyautogui
pos = pyautogui.locateOnScreen('image.png')
pyautogui.click(pos)
2.3.3 用图片坐标点击
有时候我们会定义好图片的位置,直接使用坐标进行操作更方便。
import pyautogui
posX, posY = pyautogui center(pyautogui.locateOnScreen('image.png'))
pyautogui.click(posX, PosY)
2.3.4 动态识别
根据图像变化情况选定需要找的目标模板,使用dynamic参数可对目标进行实时跟踪。
import pyautogui
while True:
pos = pyautogui.locateOnScreen('image.png', dynamic=True)
if pos is not None:
pyautogui.click(pos)
3. pyautogui的实际应用
PyAutoGUI可以应用于各种自动化任务,下面以一个实例来介绍。
3.1 实现自动化打印并保存PDF
有时候需要将一些常用的文件自动打印并保存成PDF文件。下面我们来介绍使用pyautogui来实现这个任务。
3.1.1 打开Word文档
首先,我们需要使用win32com.client模块打开一个word文件的实例。
import win32com.client
word = win32com.client.Dispatch("Word.Application")
word.Visible = 0
doc = word.Documents.Open("test.doc")
3.1.2 打印Word文档
打印时可以用win32com.client自带的方法,使用程序默认打印机进行打印。
doc.PrintOut()
3.1.3 等待打印完成
打印后需要等待一段时间让打印任务完成,可使用sleep()函数等待一定的时间。
import time
time.sleep(10)
3.1.4 切换文件保存路径
在Word中,我们需要更改文件的存储路径,以保存成PDF文件。
import pyautogui
# 使用快捷键打开另存为窗口
pyautogui.hotkey('ctrl', 'shift', 's')
# 保证等待文件保存窗口出现
time.sleep(3)
# 输入文件名称并选择PDF文件类型
pyautogui.typewrite('test.pdf')
pyautogui.press('tab')
pyautogui.press('tab')
pyautogui.press('p')
pyautogui.press('d')
pyautogui.press('f')
# 回车保存
pyautogui.press('enter')
4. 总结
Python的pyautogui模块可以帮助我们实现自动化控制鼠标和键盘的操作,可以应用于各种自动化任务。我们可以使用模块提供的函数来实现各种自动化控制,也可以结合其他第三方模块例如win32com.client进行更加复杂的任务操作。