PyAutoGUI:自动化键鼠操作的 Python 类库

开发 后端 自动化
有些朋友可能玩过按键精灵,一个用来操作键盘鼠标完成一些自动化工作的软件。其实如果你学了Python的话,完全用不着按键精灵这种东西了。

 有些朋友可能玩过按键精灵,一个用来操作键盘鼠标完成一些自动化工作的软件。其实如果你学了Python的话,完全用不着按键精灵这种东西了。因为广泛的Python类库里,就有PyAutoGUI这样可以变成控制键盘鼠标的类库,有了它,就可以用Python随心所欲的操作电脑了。而且这个类库是跨平台的,Windows、Linux、macOS都可以用,是不是很吸引人呢?

安装和使用

安装PyAutoGUI非常简单,从pip安装即可。

  1. pip install pyautogui 

这里顺便介绍一下PyAutoGUI的坐标系统,和一些常见的绘图坐标系统相同,左上角为原点,向右是x轴正方向,向下是y轴正方向。假如你的屏幕是1920*1080,那么右下角的坐标就是(1919, 1079),因为坐标是从0开始的,而不是从1开始的,这一点要格外注意。

PyAutoGUI虽然有很多函数,但是函数的作用基本上就是单击/双击鼠标、敲击/按下/弹起按键这样的,函数参数也就是点击间隔、点击按键这样很简单的参数。所以我就不列例子了,总之用起来非常简单。

函数简介

下面来介绍一下PyAutoGUI的函数。先来看看鼠标操作函数,主要是点击、拖动、滑动滚轮这些操作。

键盘操作函数,主要就是按键、组合键操作。

提示框函数,可以用来显示警告、确认、提示和密码输入对话框,增强程序可操作性。显示对话框的时候,程序会暂停,直到用户处理对话框。

截图函数,可以从屏幕上截图,也可以根据已有图片从屏幕上定位。主要用途是事先保存一些按钮图片,然后从屏幕上识别定位来点击按钮。

操作实例

首先来看看官网的一个画图例子,我们需要打开一个画图程序的窗口,然后将它放到全屏。然后运行下面的代码,然后切换到画图窗口。等待3秒钟以后就可以看到PyAutoGUI开始画图了。 

  1. import pyautogui  
  2. distance = 100  
  3. pyautogui.moveTo(400, 300)  
  4. while distance > 0:  
  5.     pyautogui.drag(distance, 0, duration=0.1)  
  6.     distance -5  
  7.     pyautogui.drag(0, distance, duration=0.1)  
  8.     pyautogui.drag(-distance, 0, duration=0.1)  
  9.     distance -5  
  10.     pyautogui.drag(0, -distance, duration=0.1) 

结果如下。其实这个画图的代码很简单,就是一圈一圈缩小,然后调用drag函数拖住画笔不放。

[[426595]]

再来看一个图片识别的例子,这个例子需要先安装OpenCV库和opencv-python包。安装之后就可以运行下面的例子了。这个例子保存了windows 10计算机的几个按钮截图,然后通过图形识别的方式找到并点击按钮执行操作。注意下面用到了confidence参数,即使图片没有完全匹配也可以识别到。 

  1. import pyautogui  
  2. import time  
  3. time.sleep(3)  
  4. # Windows计算器的按钮截图  
  5. five = '5.png'  
  6. eight = '8.png'  
  7. multiply = 'multiply.png' 
  8. equals = 'equals.png'  
  9. # 图片识别和点击的函数  
  10. def find_and_click(image):  
  11.     x, y = pyautogui.locateCenterOnScreen(image, confidence=0.9)  
  12.     pyautogui.click(x, y)  
  13. # 执行5*8 
  14. find_and_click(five)  
  15. find_and_click(multiply)  
  16. find_and_click(eight)  
  17. find_and_click(equals) 

代码以及图片的完整例子可以查看我的github,地址如下。 

  1. https://github.com/techstay/python-study/tree/master/pyautogui-sample 

通过PyAutoGUI,你可以轻松的对图形界面进行自动化编程,按照屏幕位置或者图片识别来定位控件的位置,然后通过编程来控制鼠标和键盘输入。这和按键精灵的道理是一样的。但是Python可以利用广泛的第三方包来实现更多的功能,这一点是按键精灵无法相比的。 

 

责任编辑:庞桂玉 来源: 马哥Linux运维
相关推荐

2024-06-17 10:34:12

2022-06-23 09:17:07

PythonGUIPyAutoGUI

2018-01-15 10:30:00

AndroidPython 开发

2022-06-13 09:12:04

PythonPDF代码

2020-12-01 07:01:41

CSS工具重构

2021-02-01 12:24:40

Python日志Expect

2024-05-29 11:16:33

PythonExcel

2023-12-21 11:12:31

Node.js.NET开源库

2017-12-17 21:58:18

2024-05-21 09:52:19

2022-02-18 13:12:49

人工智能自动化技术

2022-11-15 10:20:55

物联网传感器

2022-02-17 17:37:17

超级自动化人工智能AI

2020-04-29 11:28:54

智能自动化机器人流程自动化AI

2010-12-06 09:59:58

2023-11-21 22:48:50

2022-07-28 16:38:11

数字化转型

2023-09-01 09:21:03

Python自动化测试

2020-12-08 06:20:49

前端重构Vue

2012-02-27 17:34:12

Facebook自动化
点赞
收藏

51CTO技术栈公众号