python办公自动化:让PyAutoGUI来帮你干活—实践版

python办公自动化:让PyAutoGUI来帮你干活—实践版

python办公自动化:让PyAutoGUI来帮你干活—实践版

在前一篇里,介绍了强大的PyAutoGUI的自动化功能。本文以具体的例子来

在具体应用里用pyautogui来进行自动化操作,包括键盘,鼠标等移动,点击,自动抓图等。

· PyAutoGUI 库在各种操作系统上自由控制鼠标和键盘行为。

1. 安装PyAutoGUI

2. 获取鼠标光标的当前位置和显示器的大小

3. 移动并单击鼠标

4. 鼠标相对移动和双击

5. 拖动鼠标

6. 输入字符

7. 截取屏幕截图

8. 用图像定位鼠标

1. 查找图像区域

2. 获得图像区域的中心

3. 点击

9. 关于异常处理

安装PyAutoGUI

pip install pyautogui  
 conda install -c conda-forge pyautogui  

· 首先,在命令提示符下继续从pip或conda安装。

获取鼠标光标的当前位置和显示器的大小

import pyautogui   
 print(pyautogui.position())   
print(pyautogui.size())  

· position() 函数以(x,y)元组的形式返回鼠标光标的当前位置。

· size() 函数以(width,height)元组的形式返回当前主监视器的大小。

移动并单击鼠标

import pyautogui   
 pyautogui.moveTo(200, 200) pyautogui.click()  

· 使用moveTo() 将鼠标光标移动到x = 200,y = 200,然后 单击 鼠标 单击() 一次。

import pyautogui   
pyautogui.click(200, 200)  

· 要同时执行 moveTo()click() ,可以将x,y位置放在click()中。

import pyautogui   
pyautogui.click(200, 200, button='right')  

· 使用button关键字选择要单击的鼠标。您可以设置"左”,“右"和"中间”。

import pyautogui   
pyautogui.click(200, 200, clicks=2, interval=0.5)  

· clicks 关键字设置了 点击次数interval 关键字设置了点击之间的时间间隔。

鼠标相对移动和双击

import pyautogui   
 pyautogui.moveRel(0, 10)   
pyautogui.doubleClick()  

· 使用moveRel() 将光标移动到当前位置x = 0,y = 10,然后单击鼠标一次。

拖动鼠标

import pyautogui   
 pyautogui.dragTo(300, 300, button='left')   
pyautogui.dragTo(400, 400, 2, button='left')   
pyautogui.dragRel(30, 0, 2, button='right')  

· 使用dragTo() ,将鼠标左键拖动到x = 300,y = 300的位置。

· 如果输入第三个参数的值,请设置拖动时间。在当前光标位置,按住左按钮2秒,x = 400,y = 400并拖动。

· 使用dragRel() ,可以进行相对移动。右键单击并在x = 30处保持2秒,在当前位置y = 0。

· button 关键字可以设置为"left”,“right"或"middle”。

输入字符

import pyautogui   
 pyautogui.click(500, 500)   
pyautogui.typewrite('Hello world!', interval=0.1)  

· 将光标移动到x = 500,y = 500,在鼠标上单击一次并键入"Hello world!“使用 typewrite() 函数。

· 在这种情况下,将每种类型之间的时间间隔设置为0.1秒(间隔= 0.1)。

截取屏幕截图

import pyautogui   
 im1 = pyautogui.screenshot()   
im2 = pyautogui.screenshot('my_screenshot.png')  
 im3 = pyautogui.screenshot('my_region.png', region=(0, 0, 300, 300))  

· 调用 screenshot() 返回屏幕截图图像对象(im1)。

· 输入文件名(‘my_screenshot.png’)将屏幕截图图像保存为文件。

· 如果该区域被设置为region =(0,0,300,300),则从x = 0,y = 0到x = 300并且y = 300的矩形区域被保存为图像文件。

用图像定位鼠标

· 由于环境总是略有不同,因此将鼠标放在屏幕上的某个位置可能会很棘手。

· 在这种情况下,如果屏幕上有特定区域的图像文件,则可以找到并单击该区域。

· 无论计算器在哪里,总是会尝试点击相同的按钮,如()。

·

python办公自动化:让PyAutoGUI来帮你干活—实践版

· 首先,捕获计算器的特定区域并将其保存为文件夹中的"five.PNG"文件,如下所示。

python办公自动化:让PyAutoGUI来帮你干活—实践版

查找图像区域

import pyautogui   
 five_btn = pyautogui.locateOnScreen('five.PNG')   
print(five_btn)  

· locateOnScreen() haejumyeon设置图像(“five.PNG”),区域类型,元组上的水平和垂直位置和区域的大小在左边找到在屏幕上的匹配如下((左,上,宽度,高度) )输出到。

· 如果找不到该区域,则返回None。

(1443, 652, 38, 47)

获得图像区域的中心

import pyautogui

five_btn = pyautogui.locateOnScreen('five.PNG')   
 center = pyautogui.center(five_btn) print(center)  

· 使用center() 函数,您可以以元组的形式获得区域的中心(您单击的点)。

· 输出中心时(1462,675)输出。

点击

import pyautogui center = pyautogui.locateCenterOnScreen('five.PNG') pyautogui.click(center)  

· 查找图像区域和查找中点的更简单方法是使用 locateCenterOnScreen() 函数。

· 通过单击(中心)单击计算器上5按钮的中心,如下所示。

· 即使计算器的位置在屏幕上发生变化,您也可以始终单击相同的位置。

· 1920×1080屏幕,点击大约需要1-2秒,因此可能难以应用于游戏,但它可以在大多数应用程序中使用。

python办公自动化:让PyAutoGUI来帮你干活—实践版

关于异常处理

· 如果代码编程不正确,则可能难以控制鼠标和键盘。有一种防范这种情况的保障措施。

· 如果鼠标光标移动到屏幕的左上角(x = 0,y = 0),则激活安全设备并终止程序。

· 如果您不想使用这些安全设备,请按以下步骤进行设置。

import pyautogui pyautogui.FAILSAFE = False  

· 通过设置pyautogui.PAUSE的值,所有PyAutoGUI函数都可能有延迟,如下所示。

import pyautogui pyautogui.PAUSE = 2.5 pyautogui.moveTo(200, 200)   
pyautogui.click()  

· moveTo()函数后延迟2.5秒,click()函数后延迟2.5秒。

· pyautogui.PAUSE的默认值为0.1秒。

学用结合,知行合一,大家感觉如何?

pyautogui还能用到更多的场景,大家也来讨论下。需求多的,还会再专门写文章来回馈大家。