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中的Classes和Metaclasses详解
Apr 02 Python
Python中处理字符串之islower()方法的使用简介
May 19 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
May 17 Python
Python基于生成器迭代实现的八皇后问题示例
May 23 Python
python pandas 对series和dataframe的重置索引reindex方法
Jun 07 Python
Python中return self的用法详解
Jul 27 Python
解决Python获取字典dict中不存在的值时出错问题
Oct 17 Python
python利用ffmpeg进行录制屏幕的方法
Jan 10 Python
对于Python深浅拷贝的理解
Jul 29 Python
Python Lambda函数使用总结详解
Dec 11 Python
在Tensorflow中实现leakyRelu操作详解(高效)
Jun 30 Python
python编写扎金花小程序的实例代码
Feb 23 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
人族 TERRAN 概述
2020/03/14 星际争霸
六酷社区论坛HOME页清新格调免费版 下载
2007/03/07 PHP
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
2013/08/28 Javascript
详解Javascript 装载和执行
2014/11/17 Javascript
javascript字符串函数汇总
2015/12/06 Javascript
原生JS实现拖拽图片效果
2020/08/27 Javascript
jQuery简介_动力节点Java学院整理
2017/07/04 jQuery
如何快速解决JS或Jquery ajax异步跨域的问题
2018/01/08 jQuery
基于casperjs和resemble.js实现一个像素对比服务详解
2018/01/10 Javascript
微信小程序实现图片上传功能实例(前端+PHP后端)
2018/01/10 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
微信小程序实现图片上传
2019/05/23 Javascript
JavaScript享元模式原理与用法实例详解
2020/03/09 Javascript
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
Python操作MongoDB数据库PyMongo库使用方法
2015/04/27 Python
python画折线图的程序
2018/07/26 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
python3 tkinter实现添加图片和文本
2019/11/26 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
几款好用的python工具库(小结)
2020/10/20 Python
python安装及变量名介绍详解
2020/12/12 Python
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
英国最大的独立摄影零售商:Park Cameras
2019/11/27 全球购物
师范生的个人求职信范文
2014/01/04 职场文书
力学专业求职信
2014/07/23 职场文书
公证委托书
2014/08/01 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书
vue前端工程的搭建
2021/03/31 Vue.js
html中相对位置与绝对位置的具体使用
2022/05/15 HTML / CSS
css清除浮动clearfix:after的用法详解(附完整代码)
2023/05/21 HTML / CSS