python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python pyautogui图形自动化

python教程之利用pyautogui图形自动化击败重复性办公任务

作者:猫先生的早茶

在使用Python做脚本的话,有两个库可以使用,一个为PyUserInput库,另一个为pyautogui库,就本人而言更喜欢使用pyautogui库,该库功能多,使用便利,下面这篇文章主要给大家介绍了关于python教程之利用pyautogui图形自动化击败重复性办公任务的相关资料,需要的朋友可以参考下

引言

pyautogui一个神奇的图像自动化库,学会之后无所不能。上能挂机刷宝箱,下能自动写文档。(>人<;)让我装个逼,别锤我,谢谢!

安装

这个pyautogui在win10上的安装挺坑的,当初第一次安装时出现了好几次错误(┬┬﹏┬┬)

安装命令如下:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyautogui

导入模块

在安装好这个模块后我们还需要在程序的开头加上如下代码导入该模块

import pyautogui

鼠标操作

讲鼠标操作前,我们提个问题,如何确认电脑上屏幕上某个图标的位置?

答:是通过图标的左上角的坐标位置进行确认的。

如图所示,我们可以看看出是以屏幕的左上角作为起始点,进行确认屏幕中的位置。细心的小伙伴可能会发现,这坐标的走向类似于数学坐标系中的第四象限。没错,不过Y轴的数值类似于第四象限的Y轴的绝对值。也就是说Y的值越大,在屏幕中的为位置就越向下。说明如果我想让鼠标点击某个位置,必须要先获取该位置的坐标值。

1、获取鼠标位置

所以我们的第一条命令就是获取鼠标当前的位置。

x,y = pyautogui.position()

我们来打印下当前的位置

print ("当前鼠标的X轴的位置为:{},Y轴的位置为:{}".format(x,y))

输出结果如下:

当前鼠标的X轴的位置为:333,Y轴的位置为:327

2、获取屏幕分辨率

如何获取屏幕的分辨率呢?也就是最大的X和Y的值

x,y = pyautogui.size()

打印屏幕的分辨率

print ("当前屏幕的分辨率是{}*{}".format(x,y))

输出结果:

当前屏幕的分辨率是1536*864

3、移动鼠标

比如说,电脑桌面上的火狐浏览器的位置是(100,100).我如何将鼠标移动到这个位置呢?

pyautogui.moveTo(x=300,y=300,duration=0.25)

duration类似于移动时间或移动速度,省略后则是瞬间移动到指定的位置

4、单击鼠标

如何让鼠标左键点击屏幕中(100,100)的位置呢?

pyautogui.click(x=100,y=150,button='left')

button=‘left’相当于鼠标左键,button=‘right’相当于鼠标右键。当不带button参数时,默认为左键。

5、双击鼠标

如何双击鼠标呢?

pyautogui.doubleClick(x=100,y=150,button="left")

button=‘left’相当于鼠标左键,button=‘right’相当于鼠标右键。当不带button参数时,默认为左键。

6、拖拽鼠标

如何实现拖拽鼠标?

pyautogui.dragTo(x,y,duration=0.25)

duration类似于移动时间或移动速度,省略后则是瞬间移动到指定的位置

键盘操作

在讲键盘操作之间,先展示一张从脚本之家盗来的按键映射表

1、发送组合键

pyautogui.hotkey('win', 'r')

发送的按键之间使用【,】逗号隔开。

2、输入内容

pyautogui.typewrite(message="hello world",interval=0.25)

message后面跟要输入的内容,interval用于设置输入的速度

高级操作

pyautogui有内置的截图功能,可以使用screenshot方法进行截图,然后可以操作截图,进行确认图片位置或者指定坐标的颜色等。

1、获取坐标点的像素

img = pyautogui.screenshot()
color = img.getpixel((100,100))

执行结果:

该坐标的像素点的颜色是:(255, 255, 255)

返回的是三原色值。

2、获取图片的位置

x,y,width,height =  pyautogui.locateOnScreen('a.png')

括号中传递的是图标文件的路径

执行:

print ("该图标在屏幕中的位置是:X={},Y={},宽{}像素,高{}像素".format(x,y,width,height))

结果:

该图标在屏幕中的位置是:X=9,Y=741,宽81像素,高95像素

3、获取图标的中心点

x, y = pyautogui.center((9,741,81,95))

括号中分别传递,图片的X轴,Y轴,宽,长

执行命令:

x,y = pyautogui.center((9,741,81,95))

执行结果:

该图标的中心点是:X=49,Y=788

教学代码

# -*- coding:utf-8 -*-
#作者:猫先生的早茶
#时间:2019年5月26日
import pyautogui

"""获取鼠标当前的坐标位置"""
x,y = pyautogui.position()

print ("当前鼠标的X轴的位置为:{},Y轴的位置为:{}".format(x,y))

"""获取屏幕分辨率"""
x,y = pyautogui.size()
print ("当前屏幕的分辨率是{}*{}".format(x,y))

"""移动鼠标到指定位置"""
pyautogui.moveTo(x=300,y=300,duration=0.25)

"""点击鼠标"""
pyautogui.click(x=100,y=150,button='right')

"""双击鼠标"""
pyautogui.doubleClick(x=100,y=150,button="left")

"""发送组合键"""
pyautogui.hotkey('win', 'r')

"""输入内容"""
pyautogui.typewrite(message="hello world",interval=0.25)

"""获取指定坐标的颜色"""
img = pyautogui.screenshot()
color = img.getpixel((100,100))
print ("该坐标的像素点的颜色是:{}".format(color))

"""获取图标的位置"""
x,y,width,height =  pyautogui.locateOnScreen('a.png')
print ("该图标在屏幕中的位置是:X={},Y={},宽{}像素,高{}像素".format(x,y,width,height))

"""获取中心点"""
x,y = pyautogui.center((9,741,81,95))
print ("该图标的中心点是:X={},Y={}".format(x,y))

总结

到此这篇关于python教程之利用pyautogui图形自动化击败重复性办公任务的文章就介绍到这了,更多相关python pyautogui图形自动化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文