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爬虫获取整个站点中的所有外部链接代码示例,具有一定借鉴价值,需要的朋友可以参考下
    2017-12-12
  • pandas Dataframe实现批量修改值的方法

    pandas Dataframe实现批量修改值的方法

    这篇文章主要介绍了pandas Dataframe实现批量修改值的方法,在使用dataframe的时候 有时候会碰到需要批量修改数据的时候,下面文章主要说明两种情况使用iloc对某几行某几列进行全部修该和对数据进行判定后,相互+/-/*某个数,使用内置函数,需要的朋友可以参考一下
    2022-06-06
  • Django form表单与请求的生命周期步骤详解

    Django form表单与请求的生命周期步骤详解

    这篇文章主要介绍了Django-form表单与请求的生命周期,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Python爬虫爬取ts碎片视频+验证码登录功能

    Python爬虫爬取ts碎片视频+验证码登录功能

    这篇文章主要介绍了Python爬虫爬取ts碎片视频+验证码登录功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • python 使用poster模块进行http方式的文件传输到服务器的方法

    python 使用poster模块进行http方式的文件传输到服务器的方法

    今天小编就为大家分享一篇python 使用poster模块进行http方式的文件传输到服务器的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python爬虫之urllib3的使用示例

    python爬虫之urllib3的使用示例

    这篇文章主要介绍了 python爬虫之urllib3的使用示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 深入理解Python3 内置函数大全

    深入理解Python3 内置函数大全

    本篇文章主要介绍了Python3 内置函数,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Python如何实现自带HTTP文件传输服务

    Python如何实现自带HTTP文件传输服务

    这篇文章主要介绍了Python如何实现自带HTTP文件传输服务,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • python使用PIL给图片添加文字生成海报示例

    python使用PIL给图片添加文字生成海报示例

    这篇文章主要介绍了python使用PIL给图片添加文字生成海报示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Python爬虫中IP池的使用小结

    Python爬虫中IP池的使用小结

    在网络爬虫的世界中,IP池是一个关键的概念,它允许爬虫程序在请求网页时使用多个IP地址,从而降低被封禁的风险,提高爬虫的稳定性和效率,本文将深入探讨Python爬虫中IP池的使用,以及如何构建和维护一个可靠的IP池,感兴趣的朋友一起看看吧
    2024-01-01

最新评论