Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘

简介: Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘

写在前面


Python中有许多有趣和强大的模块,其中一个非常有趣的模块就是pynupt。pynupt是基于pynput模块的一个封装,用于控制鼠标和键盘。它可以实现自动化操作和游戏外挂等功能。


本文将详细介绍pynupt模块的使用方法和常见的功能。


1. 安装pynput模块


在开始使用pynupt之前,我们需要先安装pynput模块。可以使用以下命令进行安装:

pip install pynput


2. pynupt模块基本操作


pynupt提供了一些基本的操作鼠标和键盘的方法。下面是一个简单的示例,可以实现模拟按键和移动鼠标的功能:

import pynupt
 
# 模拟按键
pynupt.press("a")  # 按下'a'键
pynupt.release("a")  # 释放'a'键
 
# 移动鼠标
mouse = pynupt.Mouse()
mouse.move(100, 100)  # 移动到(100, 100)坐标

这个示例中,我们使用了pynupt的press和release方法来模拟按键操作,使用Mouse类的move方法来移动鼠标到指定位置。


3. pynupt模块高级操作


pynupt不仅支持基本的操作,还支持一些高级操作。下面我们将介绍一些常见的高级操作。


3.1 模拟按键组合


有时候我们需要模拟按键组合,比如Ctrl+C、Alt+Tab等。pynupt提供了一些方法来实现模拟按键组合。下面是一个示例,可以实现模拟Ctrl+C的功能:

 
import pynupt
 
keyboard = pynupt.Keyboard()
keyboard.press(pynupt.Key.ctrl)
keyboard.press('c')
keyboard.release('c')
keyboard.release(pynupt.Key.ctrl)

在这个示例中,我们使用Keyboard类的press和release方法模拟按下和释放Ctrl和C键,从而实现Ctrl+C的功能。


3.2 监听键盘和鼠标事件


pynupt还可以监听键盘和鼠标事件。我们可以使用Listener类来监听事件。下面是一个示例,可以监听键盘事件:

import pynupt
 
def on_press(key):
    try:
        print('按下键:{0}'.format(key.char))
    except AttributeError:
        print('按下键:{0}'.format(key))
 
def on_release(key):
    print('释放键:{0}'.format(key))
 
with pynupt.Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()

在这个示例中,我们定义了两个函数on_press和on_release来处理按下和释放键盘事件。然后使用Listener类来监听键盘事件,并将on_press和on_release函数作为参数传递给Listener类。最后使用join方法启动Listener类。


类似的,我们也可以监听鼠标事件。下面是一个示例,可以监听鼠标事件:

import pynupt
 
def on_move(x, y):
    print('移动到({0}, {1})'.format(x, y))
 
def on_click(x, y, button, pressed):
    print('点击({0}, {1})的{2}键'.format(x, y, button))
    if not pressed:
        # 释放鼠标
        return False
 
def on_scroll(x, y, dx, dy):
    print('滚动({0}, {1})的({2}, {3})'.format(x, y, dx, dy))
 
with pynupt.Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll) as listener:
    listener.join()

在这个示例中,我们定义了三个函数on_move、on_click和on_scroll来处理移动、点击和滚动鼠标事件。然后使用Listener类来监听鼠标事件,并将on_move、on_click和on_scroll函数作为参数传递给Listener类。最后使用join方法启动Listener类。


4. pynupt在自动化测试中的应用


pynupt可以在自动化测试中发挥重要的作用。我们可以使用pynupt来模拟用户输入、点击和移动等操作,从而对系统进行自动化测试。下面是一个示例,可以模拟用户在百度搜索输入框中输入关键字并点击搜索按钮:

import pynupt
import time
 
def input_and_search(keywords):
    keyboard = pynupt.Keyboard()
    mouse = pynupt.Mouse()
 
    mouse.move(500, 500)  # 将鼠标移动到屏幕中央
    mouse.click(pynupt.Button.left, 1)  # 点击左键打开浏览器
 
    time.sleep(3)  # 等待3秒钟,等待浏览器启动
 
    keyboard.type('www.baidu.com')  # 在地址栏中输入www.baidu.com
    keyboard.press(pynupt.Key.enter)  # 按下回车键
    keyboard.release(pynupt.Key.enter)  # 释放回车键
 
    time.sleep(3)  # 等待3秒钟,等待页面加载完成
 
    mouse.move(500, 200)  # 将鼠标移动到搜索框
    mouse.click(pynupt.Button.left, 1)  # 点击搜索框
 
    keyboard.type(keywords)  # 在搜索框中输入关键字
    keyboard.press(pynupt.Key.enter)  # 按下回车键
    keyboard.release(pynupt.Key.enter)  # 释放回车键
 
    time.sleep(3)  # 等待3秒钟,等待搜索结果加载完成
 
    mouse.move(500, 300)  # 将鼠标移动到搜索按钮
    mouse.click(pynupt.Button.left, 1)  # 点击搜索按钮
 
if __name__ == '__main__':
    input_and_search('pynput')

在这个示例中,我们定义了一个input_and_search函数,用于模拟用户在百度搜索输入框中输入关键字并点击搜索按钮。我们使用了pynupt的Keyboard类和Mouse类来模拟键盘和鼠标操作。最后在主函数中调用input_and_search函数,并传入关键字'pynput'来进行搜索。


总结

总之,pynupt是一个非常有趣的模块,它可以让我们通过编程来控制鼠标和键盘,让我们更加方便地进行各种操作。


相关文章
|
10月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
1076 7
|
10月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
847 0
|
10月前
|
JSON 算法 API
Python中的json模块:从基础到进阶的实用指南
本文深入解析Python内置json模块的使用,涵盖序列化与反序列化核心函数、参数配置、中文处理、自定义对象转换及异常处理,并介绍性能优化与第三方库扩展,助你高效实现JSON数据交互。(238字)
766 4
|
11月前
|
安全 大数据 程序员
Python operator模块的methodcaller:一行代码搞定对象方法调用的黑科技
`operator.methodcaller`是Python中处理对象方法调用的高效工具,替代冗长Lambda,提升代码可读性与性能。适用于数据过滤、排序、转换等场景,支持参数传递与链式调用,是函数式编程的隐藏利器。
299 4
|
10月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
848 0
|
10月前
|
XML JSON 数据处理
超越JSON:Python结构化数据处理模块全解析
本文深入解析Python中12个核心数据处理模块,涵盖csv、pandas、pickle、shelve、struct、configparser、xml、numpy、array、sqlite3和msgpack,覆盖表格处理、序列化、配置管理、科学计算等六大场景,结合真实案例与决策树,助你高效应对各类数据挑战。(238字)
1314 0
|
11月前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
872 0
|
存储 安全 数据处理
Python 内置模块 collections 详解
`collections` 是 Python 内置模块,提供多种高效数据类型,如 `namedtuple`、`deque`、`Counter` 等,帮助开发者优化数据处理流程,提升代码可读性与性能,适用于复杂数据结构管理与高效操作场景。
657 0
|
JSON 编解码 数据安全/隐私保护
电脑录制鼠标键盘脚本,鼠标动作录制脚本,万能脚本录制器【python】
完整功能:实现鼠标移动、点击和键盘操作的录制与回放 数据持久化:将录制的动作序列保存为JSON文件
|
JSON 数据安全/隐私保护 数据格式
电脑录制鼠标键盘脚本, 鼠标录制器免费版电脑版, 鼠标键盘录制工具【python】
这个Python脚本实现了一个完整的鼠标键盘录制工具,具有以下功能特点: 可以录制鼠标移动、点击和键盘按键操作

推荐镜像

更多