Python键鼠操作自动化库PyAutoGUI简介(小结)


Posted in Python onMay 17, 2020

PyAutoGUI是一个Python语言的键鼠自动化库,简单来说和按键精灵的功能一样。但是因为是Python的类库,所以可以使用Python代码配合一些其他类库完成更加强大的功能。下面让我为大家介绍一下吧。

安装

从pip安装即可。

pip install pyautogui

稍等一下安装就完毕了。

Python键鼠操作自动化库PyAutoGUI简介(小结)

使用介绍

简单介绍一下PyAutoGUI的函数以及使用方法。

鼠标操作函数

操作鼠标点击的函数。

函数 简单说明
move(x,y)、 moveTo(x,y) 移动鼠标,前者移动相对位置,后者移动到指定位置
click(x,y)、doubleClick、rightClick 单击/双击/右击,无参版本在当前位置点击鼠标
drag(x,y)、dragTo(x,y) 拖动鼠标
mouseDown、mouseUp 按下按键,松开按键
scroll 向下滚动鼠标滚轮的函数

键盘操作函数

操作键盘按键的函数。

函数 简介
press('left',press=3)
hotkey('ctrl','s') 按下Ctrl+S组合键
keyDown、keyUp 按下和松开键盘按键

提示框函数

PyAutoGUI可以显示提示框,这时候程序会暂停运行,直到用户点击提示框。

函数 简介
alert(text='',title='',button=['OK','Cancle']) 显示警告对话框
confirm() 显示确认对话框
prompt() 显示提示对话框
password() 显示密码输入对话框

屏幕截图和定位函数

截取屏幕的函数,也可以从屏幕中寻找匹配的图片,并返回其坐标。你可以事先保存一些按钮的截图,然后通过这种方式定位按钮的位置,然后点击。

函数 简介
screenshot('image.png') 保存截图并返回截图,无参版本直接返回截图不保存
center('image.png') 从屏幕上寻找图片位置,返回框位置
locateOnScreen('img') 从屏幕寻找图片位置,直接返回坐标

简单例子

先来看看官网的画图例子,我把代码稍微改了一下。运行这个例子需要先打开一个画图窗口,并放到全屏,然后运行Python代码,迅速将画图程序切换到前台。这样就可以看到PyAutoGUI控制鼠标来绘制精确的直线了。

import pyautogui
import time

time.sleep(3)

distance = 100
pyautogui.moveTo(400, 300)
while distance > 0:
  pyautogui.drag(distance, 0, duration=0.1)  
  distance -= 5
  pyautogui.drag(0, distance, duration=0.1)  
  pyautogui.drag(-distance, 0, duration=0.1) 
  distance -= 5
  pyautogui.drag(0, -distance, duration=0.1)

绘制出来的图片应该是这样的。

Python键鼠操作自动化库PyAutoGUI简介(小结)

如果要完成一些实际工作,难免会遇到识别点击复杂样式图片的场景。前面提到了截图和图片识别可以比较好的解决这个问题。这个例子需要先安装OpenCV库和opencv-python包,安装完毕之后就可以运行了。这里将win10计算器的几个按钮保存成图片,然后用PyAutoGUI的图片识别功能找到按钮的坐标,这样就可以无障碍的点击按钮,无需关心窗口的位置。特别提一点,下面的confidence参数需要安装了OpenCV才可以使用,它允许我们模糊匹配图片。

import pyautogui
import time

time.sleep(3)

# Windows计算器的按钮截图
five = '5.png'
eight = '8.png'
multiply = 'multiply.png'
equals = 'equals.png'

# 图片识别和点击的函数


def find_and_click(image):
  x, y = pyautogui.locateCenterOnScreen(image, confidence=0.9)
  pyautogui.click(x, y)


# 执行5*8=
find_and_click(five)
find_and_click(multiply)
find_and_click(eight)
find_and_click(equals)

这个例子的截图和代码都在我的github上,欢迎大家查看。

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

到此这篇关于Python键鼠操作自动化库PyAutoGUI简介(小结)的文章就介绍到这了,更多相关Python PyAutoGUI内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
跟老齐学Python之有容乃大的list(2)
Sep 15 Python
Python中bisect的用法
Sep 23 Python
Eclipse中Python开发环境搭建简单教程
Mar 23 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
Feb 16 Python
Python批量提取PDF文件中文本的脚本
Mar 14 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
Mar 15 Python
python针对不定分隔符切割提取字符串的方法
Oct 26 Python
对pyqt5之menu和action的使用详解
Jun 20 Python
python匿名函数的使用方法解析
Oct 10 Python
使用python实现名片管理系统
Jun 18 Python
Python高阶函数与装饰器函数的深入讲解
Nov 10 Python
python计算列表元素与乘积详情
Aug 05 Python
python 实现PIL模块在图片画线写字
May 16 #Python
在python image 中实现安装中文字体
May 16 #Python
Python 判断时间是否在时间区间内的实例
May 16 #Python
解决Python Matplotlib绘图数据点位置错乱问题
May 16 #Python
Python填充任意颜色,不同算法时间差异分析说明
May 16 #Python
解决echarts中饼图标签重叠的问题
May 16 #Python
实现ECharts双Y轴左右刻度线一致的例子
May 16 #Python
You might like
PHP5 安装方法
2007/01/15 PHP
PHP实现微信公众平台音乐点播
2014/03/20 PHP
yii2.0实现验证用户名与邮箱功能
2015/12/22 PHP
php + nginx项目中的权限详解
2017/05/23 PHP
laravel5.6实现数值转换
2019/10/23 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
什么是DOM(Document Object Model)文档对象模型
2012/03/05 Javascript
jQuery实现的多选框多级联动插件
2014/05/02 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
基于javascript实现的搜索时自动提示功能
2014/12/26 Javascript
JavaScript中this详解
2015/09/01 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
2016/09/19 Javascript
jQuery基于xml格式数据实现模糊查询及分页功能的方法
2016/12/25 Javascript
jquery平滑滚动到顶部插件使用详解
2017/05/08 jQuery
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
使用vue-cli3新建一个项目并写好基本配置(推荐)
2019/04/24 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
python通过floor函数舍弃小数位的方法
2015/03/17 Python
Python实战小程序利用matplotlib模块画图代码分享
2017/12/09 Python
Python实现OpenCV的安装与使用示例
2018/03/30 Python
kaggle+mnist实现手写字体识别
2018/07/26 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
通过Python编写一个简单登录功能过程解析
2019/09/04 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
2020/02/16 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
pandas按照列的值排序(某一列或者多列)
2020/12/13 Python
美国内衣品牌:Leonisa
2016/08/14 全球购物
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
莫斯科购买书籍网站:Book24
2020/01/12 全球购物
都柏林通行卡/城市通票:The Dublin Pass
2020/02/16 全球购物
师范生自荐信
2013/10/27 职场文书
普通员工辞职信
2014/01/17 职场文书
行政助理岗位职责范本
2015/04/11 职场文书
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python