用Python的pynput和pyautogui实现自动化操作

news/2024/7/7 21:52:41/文章来源:https://www.cnblogs.com/bigleft/p/18276821

哈喽,大家好,我是木头左!

一、前言

在日常生活和工作中,常常需要重复执行一些机械性的操作,如复制粘贴、点击按钮等。这些操作虽然简单,但频繁执行会浪费大量时间。为了提高效率,可以使用Python编写脚本来实现这些操作的自动化。本文将介绍如何使用pynput库记录各种按键操作,并结合pyautogui库执行相应的操作。

二、安装所需库

需要安装pynputpyautogui库。在命令行中输入以下命令进行安装:

pip install pynput
pip install pyautogui

三、使用pynput记录按键操作

pynput库可以用于监听和控制键盘和鼠标。在本节中,将学习如何使用pynput记录按键操作。

3.1 导入库

需要导入pynput库中的相关模块:

from pynput import keyboard
from pynput.keyboard import Key

3.2 定义按键监听器

接下来,需要定义一个按键监听器,用于记录按键操作:

def on_press(key):try:print('Key {0} pressed'.format(key.char))except AttributeError:print('Special key {0} pressed'.format(key))def on_release(key):print('{0} released'.format(key))if str(key) == 'Key.esc':return False

3.3 监听按键事件

需要创建一个按键监听器实例,并将上述定义的回调函数传递给它:

with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:listener.join()

运行上述代码,你将看到按下和释放的按键信息被打印出来。当按下Esc键时,程序将停止运行。

四、使用pyautogui执行操作

pyautogui库可以实现模拟鼠标和键盘操作。在本节中,将学习如何使用pyautogui执行操作。

4.1 导入库

需要导入pyautogui库:

import pyautogui

4.2 模拟鼠标操作

pyautogui库提供了许多用于模拟鼠标操作的函数,如click()moveTo()等。以下是一个简单的示例:

pyautogui.click(x=100, y=100)  # 在坐标(100, 100)处执行点击操作
pyautogui.moveTo(x=200, y=200, duration=1)  # 移动鼠标到坐标(200, 200)处,持续时间为1秒

4.3 模拟键盘操作

pyautogui库还提供了用于模拟键盘操作的函数,如typewrite()press()等。以下是一个简单的示例:

pyautogui.typewrite('Hello, world!')  # 输入字符串"Hello, world!"
pyautogui.press('enter')  # 按下回车键

五、结合pynput和pyautogui实现自动化操作

现在已经学会了如何使用pynput记录按键操作,以及如何使用pyautogui执行操作。接下来,将结合这两个库实现一个简单的自动化操作示例。
假设需要实现一个自动打开记事本并输入一段文字的功能。可以先使用pynput记录打开记事本的操作,然后使用pyautogui输入文字。具体步骤如下:

  • 使用pynput记录打开记事本的操作。
  • 使用pyautogui输入文字。
  • 保存并运行脚本。
    通过这种方式,可以轻松地实现许多自动化操作,从而提高工作效率。

我是木头左,感谢各位童鞋的点赞、收藏,我们下期更精彩!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/734297.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(log求因数和)北京建筑大学2024年程序设计竞赛 B因数之和

题意:计算一个数的所有因数的和通常涉及质因数分解,然后对每个质因数的幂次进行求和运算。 具体步骤如下: 1.质因数分解:首先,将给定的数进行质因数分解,表示为\(2^{a}*3^{b}*5^{c}....\) 2.计算每个质因数的贡献:对于每个质因数p(如2, 3, 5等),计算从p{0}到p的所有…

样本空间的计数

高一初学阶段常用的样本空间的计数方法需要切实掌握前言 在统计样本空间数时,需要考虑是否有顺序和是否放回,同时请注意列举法、描述法,表格法,树状图的合理运用。这些方法都是高一初次学习需要切实掌握的方法,等到了高二或者高三,对思维的要求提高以后,更多的会用到加法…

空间单细胞|基于图像的数据分析(3)

引言 在这篇指南[1]中,我们介绍了Seurat的一个新扩展功能,用以分析新型的空间解析数据,将重点引言 在这篇指南中,我们介绍了Seurat的一个新扩展功能,用以分析新型的空间解析数据,将重点介绍由不同成像技术生成的三个公开数据集。Vizgen MERSCOPE(用于小鼠大脑研究) Nan…

关于Java中 因取消装箱可能产生 NullPointerException 的原因

一.什么是装箱,什么是拆箱? 装箱:将值类型转换为引用数据类型。 拆箱:将引用数据类型转换为值类型。说白了就是 Integer与int数据类型之间的转换 二.为什么会有自动一说呢? 我们都知道,java是一个面向对象的语言。因此包括数字、字符、日期、布尔值等等再内的一切都是对象…

7-8次大作业总结

前言 这两次对我这种水平的学生来说很难写,只能搭建大致的框架和思路。 还是要对对第七和第八次大作业里所学进行一个总结,从多方面来分析这两次作业之间的联系和差异,并从中了解自己的不足与缺点。第七次作业添加了互斥开关和窗帘,窗帘还好,只是一个简单的电路的受控设备…

第三轮OOP作业总结

随着这一次大作业的结束,这学期的PTA大作业也随之完结,可以说这最后一次大作业也是最难的一次,在这一次作业中我也感受到了不良代码结构所导致的修改错误的痛苦,接下来让我们对这两次题目进行相应分析。家居强电电路模拟程序-3 家居强电电路模拟程序-4第三次作业 这一次大作…

Windows 7操作系统全面解析与实用技巧

深入介绍Windows 7操作系统的基础知识、功能特性、分类和基本操作技巧,包括核心功能、特征、分类、安装方法、启动、文件管理、个性化设置等方面。旨在帮助用户深入理解Windows 7,并掌握提高工作效率和个性化设置的实用技巧。Win7操作系统一、操作系统的概述 1.1操作系统的概…

C#使用MQTT通讯协议发布订阅主题报文

一、服务端1.添加引用MQTTnet类库  2.代码:启动一个MQTT服务1        // 启动一个MQTT服务器2 // MQTT 3 IMqttServer server = new MqttFactory().CreateMqttServer();4 server.ClientConnectedHandler = new MqttServerClient…

图解 Jenkins Pipeline 的前端自动化部署,用上后真香!

图解 Jenkins Pipeline 的前端自动化部署,用上后真香! 原创 悟空聊架构 悟空聊架构 2024-06-27 20:57 广东 听全文你好,我是悟空。 本文目录如下:一、Jenkins 前端部署思路1.1 整体架构图1.2 部署步骤二、Pipeline和自由风格对比三、Pipeline 核心脚本3.1 获取 Git 代码分支…

23201115-邓俊豪-第三次blog

目录blog2前言关于难度和题目量关于知识点设计与分析pta-7一、项目简介二、项目实现三、项目测试四、代码示例五、总结六、代码分析pta-8一、项目简介二、项目实现三、项目测试四、代码示例五、总结六、代码分析改进建议 blog2 前言 关于难度和题目量 前三次大作业难度属于偏难…

Fastapi 项目第二天首次访问时数据库连接报错问题Cant connect to MySQL server

问题描述 Fastapi 项目使用 sqlalchemy 连接的mysql 数据库,每次第二天首次访问数据库相关操作,都会报错:sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Cant connect to MySQL server on x.x.x.x ([Errno 111] Connection refused)"…

linux安装中文字体

1.从windows复制宋体字体2.linux系统下/usr/share/fonts 3.创建simsun路径,将字体文件放进去4.改一下字体权限 cd /usr/share/fonts/ sudo chmod -R myfonts 7555.安装依赖 yum install mkfontscale yum install fontconfig6.执行以下命令 mkfontscale mkfontdir fc-cache7.查看…

(五)DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍

DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍如需引用 DeepSpeed Chat,请引用我们的arxiv report: @article{yao2023dschat,title={{DeepSpeed-Chat: Easy, Fast and Affordable RLHF Training of ChatGPT-like Models at All Scales}},author={Zh…

第7-8次OOP作业总结

一、前言 1.第七次作业(家居强电电路模拟程序-3) 这次作业题目在原先的基础上新增用电器新增了互斥开关和受控窗帘,同时存在多个并联电路,无疑在上次作业的基础上过程没有太大变化,难度也是相当,主要是新的用电器的添加问题。并联电路的改动还好说,上次作业我便考虑到了,…

Python——比 Seaborn 更好的相关性热力图:Biokit Corrplot

在 Python 中我们日常分析数据的过程当中经常需要对数据进行相关性分析,相关性热力图(Correlation Heatmap)是我们经常使用的一种工具。通过相关性热力图,我们可以通过为相关性不同的数据使用不同深浅的不同颜色进行标记,从而直观地观察两两数据序列之间的相关性情况——这…

流量治理核心策略

熔断、隔离、重试、降级、超时、限流https://mp.weixin.qq.com/s/_3pht6cFdkuRfrE1z0dpKQ

第三次blog大作业

1,前言:最后两次大作业都是只有一道题,就是前面的家庭电路模拟题的迭代,题目量虽然看起来很少只有一道题目,但是这一道题目也比前面出几道题目的时候花的时间还要长,第七次大作业的迭代主要考虑的是单刀双置开光,单刀双置开关为了避免短路,他连接不同的电路还会有不同的…

PTA题目集7~8的总结性Blog

前言: 对于我这种水平的学生来说本次的7-8次PTA的难度之大令我无从下手,况且之前的第6次PTA就已经让我望而止步了,更别提这两次在第6次PTA题目集之上再次进行迭代的题目了。再加上面临的期末周,大量学科等着我去复习,以至于没时间去钻磨PTA的改动,哭死,连老师都说单单是…

如何刻画复杂事件

用简单的基本事件来刻画复杂事件前言 复杂事件的刻画 ✍️[网摘整理]设 \(A\),\(B\) 是试验 \(E\) 的随机事件,深入体会用基本事件的和或积的运算来刻画复杂事件,并熟练掌握: ① \(A\)发生:\(A=AB+A\bar{B}\); ② 只有 \(A\) 发生:\(A\bar{B}\); ③ \(A\),\(B\) 恰有一…

VS2022 csproject文件增加发布时文件项

发布时新加的node_modules 总是不会伴随着其他文件一起发布到文件夹里面。一个一个添加选项太麻烦了。百度查询后发现可以通过修改csproject 把node_modules //添加节点即可 <ItemGroup> <Content Include="wwwroot\assets\node_modules\**"> <C…