Python使用keyboard库实现键盘事件监听与热键捕获

云舒
云舒
发布时间:2026-10-14| 5人浏览过
原创

本文介绍如何利用Python的keyboard库实现键盘事件的完整记录与热键绑定。通过hook函数监听每次击键并记录时间戳,可精确分析高速输入时的按键交错现象及总耗时。同时演示如何使用add_hotkey方法自定义组合键触发逻辑,适用于自动化脚本与性能测试场景。

键盘事件监听与速度分析

出于对击键速度的好奇,需要记录有效按键的详细信息,从而引入了Python的 keyboard 库来进行键盘事件捕获。

该库的安装过程十分简便,直接运行 pip install keyboard 即可完成部署。

键盘事件录制

保存并运行以下示例代码:


import keyboard
import time

keyboard.hook(lambda e: print(e, time.clock()))
keyboard.wait('Ctrl')

代码中通过 keyboard.hook 为每个键盘事件注册回调,并执行 lambda 匿名函数以处理事件数据。keyboard.wait() 用于阻塞主进程,直至用户按下 Ctrl 键以结束监听。

实际运行结果如下所示:


KeyboardEvent(g down) 4.450576466
KeyboardEvent(g up) 4.505627652
KeyboardEvent(i down) 4.510628277
KeyboardEvent(t down) 4.570555791
KeyboardEvent(i up) 4.580582066
KeyboardEvent(space down) 4.581583136
KeyboardEvent(p down) 4.630656009
KeyboardEvent(t up) 4.671189791
KeyboardEvent(space up) 4.693182730
KeyboardEvent(p up) 4.705543556
KeyboardEvent(u down) 4.705867633
KeyboardEvent(s down) 4.730623806
KeyboardEvent(u up) 4.750832241
KeyboardEvent(s up) 4.795770594
KeyboardEvent(h down) 4.810543976
KeyboardEvent(h up) 4.86056459
KeyboardEvent(enter down) 4.920739469
KeyboardEvent(enter up) 4.930514276
KeyboardEvent(ctrl down) 7.030813124

数据显示,在输入 git push<enter> 命令期间出现了多次按键交错现象(即前一个按键未完全释放,下一个按键已触发),这是高速打字时的常见情况。从开始输入到命令执行完毕,总耗时不足 0.5 s,展现了极高的输入效率。

自定义热键绑定方法

热键捕获绑定


import keyboard
 
print('Press and release your desired hotkey: ')
hotkey = keyboard.read_hotkey()
print('Hotkey selected: ', hotkey)
 
def on_triggered():
 print("Triggered!")
 
keyboard.add_hotkey(hotkey, on_triggered)
print("Press ESC to stop.")

以上即为利用Python keyboard库进行键盘事件记录与热键绑定的完整流程,更多相关技术细节可参考本站其他文章。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。