github python 画图_PyAutoGUI:自动化键鼠操作的Python类库

PyAutoGUI是一个跨平台的Python库,用于自动化键盘和鼠标操作,类似于按键精灵。它提供了简单的API来实现点击、拖动、滚动等鼠标功能和按键、组合键的敲击。通过该库,开发者可以编写脚本实现屏幕画图、图像识别以及更多图形界面自动化任务,比按键精灵更具灵活性和扩展性。

ab04584acf99fc72b4b5d2d110235950.gif

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

1aea227874a991ea5204d0e4fbd14c7a.png

Github页面

安装和使用

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

pip install pyautogui

3f9ad2c7a76bc9fb64ff94c752ddbc60.png

用pip安装

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

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

函数简介

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

85829ee1539c2b67177d1e75860edaf2.png

鼠标操作

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

cc4520d91ca9eddf070549dc4070d04b.png

键盘操作

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

99bbe638a73d26cce26b09032613809d.png

提示框函数

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

c62b0e1ce05f58665c54d26d4c620f6f.png

截图函数

操作实例

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

import pyautogui

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)

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

1c8e21a83544e251b31e65009f3524d5.png

画出来的图

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

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

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

来源:

https://www.toutiao.com/a6827183521623179788/

“IT大咖说”欢迎广大技术人员投稿,投稿邮箱:aliang@itdks.com

ca4e83cfd12f51fcdb3e6c02fe089cdf.gif来都来了,走啥走,留个言呗~

 IT大咖说  |  关于版权 

由“IT大咖说(ID:itdakashuo)”原创的文章,转载时请注明作者、出处及微信公众号。投稿、约稿、转载请加微信:ITDKS10(备注:投稿),茉莉小姐姐会及时与您联系!

感谢您对IT大咖说的热心支持!

相关推荐

推荐文章

  • 编程语言的鄙视链

  • 一种无侵入比swagger-ui兼容性更好更简单的API文档生成方案

  • 神奇的C语言:一段令人百思不得其解的代码

  • Quarkus是Java的未来吗?

  • 【项目实践】后端接口统一规范的同时,如何优雅得扩展规范?

  • 深入理解Servlet

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值