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

作者:稳健小周 时间:2022-01-08 15:24:55 

前提环境准备

python3+pillow+pyautogui

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

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


pip install pillow
pip install pyautogui
pip install opencv-python

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

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

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

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

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

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

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

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

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

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

详细代码


#导入模块
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教你做个自动脚本计算器的方法

来源:https://blog.csdn.net/weixin_45112130/article/details/114391092

标签:PyAutoGui,自动脚本计算器
0
投稿

猜你喜欢

  • ML神器:sklearn的快速使用及入门

    2023-04-17 04:42:09
  • Python3 Random模块代码详解

    2023-04-11 01:36:20
  • 浅谈MySQL与redis缓存的同步方案

    2024-01-13 23:44:58
  • 基于python实现垂直爬虫系统的方法详解

    2023-11-17 13:33:38
  • 英文版面设计的8个禁忌

    2009-10-14 20:42:00
  • Django Rest framework认证组件详细用法

    2023-02-20 09:47:08
  • python利用pd.cut()和pd.qcut()对数据进行分箱操作

    2022-03-26 07:57:45
  • 使用Pyparsing处理复杂文本实现过程

    2023-03-21 13:37:44
  • 教你如何在Pycharm中导入requests模块

    2023-05-03 13:10:14
  • 深入浅析Python中join 和 split详解(推荐)

    2022-09-19 17:43:38
  • FLASH 全屏播放

    2008-07-19 11:36:00
  • 设计师挖掘用户需求浅谈

    2009-10-25 13:24:00
  • Go interface{} 转切片类型的实现方法

    2024-05-05 09:31:05
  • 解决用CSS控制DIV居中失效的问题

    2010-04-05 21:53:00
  • Oracle 当前用户下所有表的记录总数

    2009-07-14 21:34:00
  • Python的字典和列表的使用中一些需要注意的地方

    2023-01-09 02:03:52
  • flask SQLAlchemy连接数据库及操作的实现

    2024-01-28 09:23:29
  • 解决python 出现unknown encoding: idna 的问题

    2023-10-06 21:26:06
  • Python中使用haystack实现django全文检索搜索引擎功能

    2023-06-30 07:21:03
  • 判断所使用的浏览器不仅仅是电脑浏览器代码整理

    2023-12-13 10:13:21
  • asp之家 网络编程 m.aspxhome.com