python之PyAutoGui教你做个自动脚本计算器的方法

 更新时间:2021年03月07日 16:59:42   作者:稳健小周  
这篇文章主要介绍了python之PyAutoGui教你做个自动脚本计算器的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前提环境准备

python3+pillow+pyautogui

先提前安装好python3以及pillow和pyautogui模块

这里介绍一下模块安装方法

pip install pillow
pip install pyautogui
pip install opencv-python

最终效果是利用python脚本模拟电脑计算器进行自动计算,相当于模拟人去点击自带的计算器进行运算,想要做到这一点需要有两个条件:

1.模拟鼠标和键盘的输入工作

2.识别计算器按钮的位置

先来看一下win10电脑的计算器是什么样子的:

我们要知道一点,计算器窗口的位置每次都是不同的,如果你是固定去确定按钮的坐标那就太被动了,所以我们这里需要用到图像识别,去识别到按钮的位置,博主这里

做一个示例 做一个1+2=的运算。

废话不多说直接上代码,跟着注释,看懂代码没毛病。

打开你的微信截图截下1,+,2,=四个图片存入脚本所在目录

详细代码

#导入模块
from PIL import ImageGrab
import pyautogui as auto
#定义类
class Screenshoot:
  def __init__(self):
    #self.bbox = bbox
    #self.name = name
    #self.im = ImageGrab.grab(self.bbox)
    #定位xy坐标,confidence为相似度判断,最好不要使用1.0完全相似,比较容易不识别
    self.position_1 = auto.locateCenterOnScreen('1.png', confidence=0.9)
    self.position_2 = auto.locateCenterOnScreen('2.png', confidence=0.9)
    self.position_3 = auto.locateCenterOnScreen('+.png', confidence=0.9)
    self.position_4 = auto.locateCenterOnScreen('=.png', confidence=0.9)
    pass
  def fullshoot(self):
    #全屏截图
    #self.im.save('01.png')
    pass
  def partialshoot(self):
    #局部精确截图
    #self.im.save(self.name+'.png')
    pass
  def position_show(self):
    #打印各坐标
    print(self.position_1)
    print(self.position_2)
    print(self.position_3)
    print(self.position_4)
  def caculate(self):
    #依次点击按钮
    auto.click(self.position_1)
    auto.click(self.position_3)
    auto.click(self.position_2)
    auto.click(self.position_4)
#对象初始化
shoot1 = Screenshoot()
#对象函数执行
shoot1.position_show()
shoot1.caculate()
#shoot1.partialshoot()
#shoot1.fullshoot()

运行结果

到此这篇关于python之PyAutoGui教你做个自动脚本计算器的方法的文章就介绍到这了,更多相关PyAutoGui 自动脚本计算器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法

    python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法

    这篇文章主要介绍了python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法,涉及Python针对系统信息的相关操作技巧,需要的朋友可以参考下
    2015-05-05
  • Pandas 连接合并函数merge()详解

    Pandas 连接合并函数merge()详解

    这篇文章主要介绍了Pandas 连接合并函数merge()详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • Python实现将n个点均匀地分布在球面上的方法

    Python实现将n个点均匀地分布在球面上的方法

    这篇文章主要介绍了Python实现将n个点均匀地分布在球面上的方法,涉及Python绘图的技巧与相关数学函数的调用,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • python requests爬取高德地图数据的实例

    python requests爬取高德地图数据的实例

    今天小编就为大家分享一篇python requests爬取高德地图数据的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • 在Django的视图中使用form对象的方法

    在Django的视图中使用form对象的方法

    这篇文章主要介绍了在Django的视图中使用form对象的方法,Django是Python丰富多彩的开发框架中最具有人气的一个,需要的朋友可以参考下
    2015-07-07
  • Django给admin添加Action的步骤详解

    Django给admin添加Action的步骤详解

    这篇文章主要给大家介绍了关于Django给admin添加Action的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Django具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • 浅谈Python中的作用域规则和闭包

    浅谈Python中的作用域规则和闭包

    本文简单讲解了PYTHON的闭包,作用域的基本知识配合实例简单明了,适合初学者
    2018-03-03
  • Python中的递归函数使用详解

    Python中的递归函数使用详解

    这篇文章主要介绍了Python中的递归函数使用详解,递归函数是指某个函数调用自己或者调用其他函数后再次调用自己,由于不能无限嵌套调用,所以某个递归函数一定存在至少两个分支,一个是退出嵌套,不再直接或者间接调用自己;另外一个则是继续嵌套,需要的朋友可以参考下
    2023-12-12
  • Pandas创建DataFrame提示:type object 'object' has no attribute 'dtype'解决方案

    Pandas创建DataFrame提示:type object 'object' has n

    Pandas数据帧(DataFrame)是二维数据结构,它包含一组有序的列,每列可以是不同的数据类型,这篇文章主要给大家介绍了关于Pandas创建DataFrame提示:type object ‘object‘ has no attribute ‘dtype‘的解决方案,需要的朋友可以参考下
    2023-02-02
  • 深入理解python中的atexit模块

    深入理解python中的atexit模块

    atexit模块很简单,只定义了一个register函数用于注册程序退出时的回调函数,我们可以在这个回调函数中做一些资源清理的操作。下面这篇文章主要介绍了python中atexit模块的相关资料,需要的朋友可以参考下。
    2017-03-03

最新评论