python中pynput库的具体使用

 更新时间:2024年09月23日 09:51:02   作者:pumpkin84514  
pynput是Python库,支持跨平台控制和监听键盘、鼠标输入,包含keyboard和mouse模块,用于处理键盘事件和鼠标事件,本文就来详细的介绍一下,感兴趣的可以了解一下

pynput 是一个 Python 库,用于控制和监听键盘与鼠标输入。它在 Windows、macOS 和 Linux 上都可以工作,为用户提供了一个跨平台的输入事件处理方式。pynput 包含两个主要模块:keyboard 和 mouse,分别用于处理键盘和鼠标事件。

主要API介绍:

键盘模块(keyboard)

  • KeyboardListener:监听键盘事件。
  • Controller:控制键盘输入。

鼠标模块(mouse)

  • MouseListener:监听鼠标事件。
  • Controller:控制鼠标移动和点击。

常用API函数:

键盘API

  • keyboard.Controller.press(key): 按下键。
  • keyboard.Controller.release(key): 释放键。
  • keyboard.Controller.type(string): 输入字符串。
  • keyboard.Listener(on_press=None, on_release=None): 监听键盘按键事件。

鼠标API

  • mouse.Controller.position: 获取当前鼠标位置。
  • mouse.Controller.move(x, y): 移动鼠标。
  • mouse.Controller.press(button): 按下鼠标按钮。
  • mouse.Controller.release(button): 释放鼠标按钮。
  • mouse.Controller.click(button, n): 单击鼠标按钮n次。
  • mouse.Listener(on_click=None, on_scroll=None, on_move=None): 监听鼠标事件。

具体示例:

键盘示例

from pynput.keyboard import Key, Listener, Controller

# 创建键盘控制器
keyboard = Controller()

def on_press(key):
    try:
        print('Alphanumeric 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 key == Key.esc:
        # Stop listener
        return False

# Collect events until released
with Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()

# 模拟键盘输入
keyboard.type("Hello World!")
keyboard.press(Key.enter)
keyboard.release(Key.enter)

鼠标示例

from pynput.mouse import Button, Controller, Listener

# 创建鼠标控制器
mouse = Controller()

def on_move(x, y):
    print('Pointer moved to {0}'.format((x, y)))

def on_click(x, y, button, pressed):
    if pressed:
        print('Mouse clicked at ({0}, {1}) with {2}'.format(x, y, button))

def on_scroll(x, y, dx, dy):
    print('Mouse scrolled at ({0}, {1})({2}, {3})'.format(x, y, dx, dy))

# Collect events until released
with Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll) as listener:
    listener.join()

# 模拟鼠标移动和点击
mouse.position = (100, 200)
mouse.click(Button.left, 1)

注意事项:

  • 在使用 pynput 监听键盘和鼠标事件时,程序会阻塞直到监听结束。
  • pynput 可能需要管理员权限才能运行,特别是在 Windows 上。
  • pynput 的事件监听器可以设置为非阻塞模式,但默认是阻塞的。

以上就是 pynput 的基础使用方法和一些常见API的介绍。更多相关python pynput库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中的匿名函数使用简介

    Python中的匿名函数使用简介

    这篇文章主要介绍了Python中的匿名函数的使用,lambda是各个现代编程语言中的重要功能,需要的朋友可以参考下
    2015-04-04
  • Pygame实战练习之飞机大战游戏

    Pygame实战练习之飞机大战游戏

    飞机大战想必是很多人童年时期的经典游戏,我们依旧能记得抱个老人机娱乐的场景,下面这篇文章主要给大家介绍了关于如何利用python写一个简单的飞机大战小游戏的相关资料,需要的朋友可以参考下
    2021-09-09
  • Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】

    Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】

    这篇文章主要介绍了Python 网络编程之UDP发送接收数据功能,结合实例形式分析了Python使用socket套接字实现基于UDP协议的数据发送端与接收端相关操作技巧,需要的朋友可以参考下
    2019-10-10
  • Python中进度条tqdm包使用方法及特性介绍

    Python中进度条tqdm包使用方法及特性介绍

    这篇文章主要介绍了Python中进度条tqdm包使用方法及特性,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Python 实现购物商城,含有用户入口和商家入口的示例

    Python 实现购物商城,含有用户入口和商家入口的示例

    下面小编就为大家带来一篇Python 实现购物商城,含有用户入口和商家入口的示例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • TensorFlow 显存使用机制详解

    TensorFlow 显存使用机制详解

    今天小编就为大家分享一篇TensorFlow 显存使用机制详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python实现链表反转的方法分析【迭代法与递归法】

    Python实现链表反转的方法分析【迭代法与递归法】

    这篇文章主要介绍了Python实现链表反转的方法,结合实例形式分析了Python迭代法与递归法实现链表反转的相关操作技巧与注意事项,需要的朋友可以参考下
    2020-02-02
  • Python直接赋值与浅拷贝和深拷贝实例讲解使用

    Python直接赋值与浅拷贝和深拷贝实例讲解使用

    浅拷贝,指的是重新分配一块内存,创建一个新的对象,但里面的元素是原对象中各个子对象的引用。深拷贝,是指重新分配一块内存,创建一个新的对象,并且将原对象中的元素,以递归的方式,通过创建新的子对象拷贝到新对象中。因此,新对象和原对象没有任何关联
    2022-11-11
  • python opencv 检测移动物体并截图保存实例

    python opencv 检测移动物体并截图保存实例

    这篇文章主要介绍了python opencv 检测移动物体并截图保存实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • python仿evething的文件搜索器实例代码

    python仿evething的文件搜索器实例代码

    这篇文章主要介绍了python仿evething的文件搜索器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05

最新评论