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

 更新时间:2022年03月23日 08:57:46   作者:猫先生的早茶  
在使用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图形自动化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python学习之列表的运用

    python学习之列表的运用

    这篇文章主要介绍了python学习之列表的运用,文章首先通过创建列表展开列表运用的相关资料,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • Python 画出来六维图

    Python 画出来六维图

    这篇文章主要介绍了Python 画出来六维图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python Matplotlib绘制多子图详解

    Python Matplotlib绘制多子图详解

    Matplotlib是Python中最受欢迎的数据可视化软件包之一,它是 Python常用的2D绘图库,同时它也提供了一部分3D绘图接口。本文将详细介绍如何通过Matplotlib绘制多子图,以及合并图例和调整子图间距,需要的可以参考一下
    2022-02-02
  • pandas数据探索之合并数据示例详解

    pandas数据探索之合并数据示例详解

    这篇文章主要为大家介绍了pandas数据探索之合并数据示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • Python 可视化神器Plotly详解

    Python 可视化神器Plotly详解

    这篇文章主要介绍了Python 可视化神器Plotly详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Python实现区域填充的示例代码

    Python实现区域填充的示例代码

    这篇文章主要介绍了Python实现区域填充的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 如何在django中实现分页功能

    如何在django中实现分页功能

    这篇文章主要介绍了如何在django中实现分页功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 2020年10款优秀的Python第三方库,看看有你中意的吗?

    2020年10款优秀的Python第三方库,看看有你中意的吗?

    2020已经过去,在过去的一年里,又有非常多优秀的Python库涌现出来。相对于numpy、TensorFlow、pandas这些已经经过多年维护、迭代,对于大多数Python开发者耳熟能详的库不同。
    2021-01-01
  • 手把手教你用322行Python代码编写贪吃蛇游戏

    手把手教你用322行Python代码编写贪吃蛇游戏

    最近在学Python,想做点什么来练练手,命令行的贪吃蛇一般是C的练手项目,但是一时之间找不到别的,就先做个贪吃蛇来练练简单的语法,下面这篇文章主要给大家介绍了关于如何用322行Python代码编写贪吃蛇游戏的相关资料,需要的朋友可以参考下
    2023-02-02
  • TensorFlow 输出checkpoint 中的变量名与变量值方式

    TensorFlow 输出checkpoint 中的变量名与变量值方式

    今天小编就为大家分享一篇TensorFlow 输出checkpoint 中的变量名与变量值方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02

最新评论