python利用 keyboard 库记录键盘事件


Posted in Python onOctober 16, 2020

今天也不知道是想了什么,突然就想要试试看我有效击键时的手速到底有多快。为此,需要记录下来击键的记录。于是找到了 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 记录键盘事件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
跟老齐学Python之玩转字符串(2)
Sep 14 Python
Python实现备份文件实例
Sep 16 Python
python万年历实现代码 含运行结果
May 20 Python
pip安装Python库时遇到的问题及解决方法
Nov 23 Python
Django后台获取前端post上传的文件方法
May 28 Python
python 3.3 下载固定链接文件并保存的方法
Dec 18 Python
Python3.4学习笔记之列表、数组操作示例
Mar 01 Python
对python中GUI,Label和Button的实例详解
Jun 27 Python
python多进程下的生产者和消费者模型
May 07 Python
python Django 反向访问器的外键冲突解决
May 20 Python
使用Keras画神经网络准确性图教程
Jun 15 Python
python 基于opencv操作摄像头
Dec 24 Python
python实现快速文件格式批量转换的方法
Oct 16 #Python
Python通过getattr函数获取对象的属性值
Oct 16 #Python
pandas处理csv文件的方法步骤
Oct 16 #Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
Oct 16 #Python
Python使用内置函数setattr设置对象的属性值
Oct 16 #Python
python pymysql库的常用操作
Oct 16 #Python
Python基于callable函数检测对象是否可被调用
Oct 16 #Python
You might like
php侧拉菜单 漂亮,可以向右或者向左展开,支持FF,IE
2009/10/15 PHP
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
2013/06/06 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
PHP7 list() 函数修改
2021/03/09 PHP
Jquery实现无刷新DropDownList联动实现代码
2010/03/08 Javascript
JQuery Easyui Tree的oncheck事件实现代码
2010/05/28 Javascript
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
jQuery实现带延迟效果的滑动菜单代码
2015/09/02 Javascript
Bootstrap每天必学之标签与徽章
2015/11/27 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
JQuery统计input和textarea文字输入数量(代码分享)
2016/12/29 Javascript
Bootstrap Table使用整理(五)之分页组合查询
2017/06/09 Javascript
vue组件之间通信实例总结(点赞功能)
2018/12/05 Javascript
跟老齐学Python之再深点,更懂list
2014/09/20 Python
详解Python编程中time模块的使用
2015/11/20 Python
python破解zip加密文件的方法
2018/05/31 Python
Python中return self的用法详解
2018/07/27 Python
对python模块中多个类的用法详解
2019/01/10 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
利用Python的sympy包求解一元三次方程示例
2019/11/22 Python
Django对接支付宝实现支付宝充值金币功能示例
2019/12/17 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
css3给背景图片加颜色遮罩的方法
2019/11/05 HTML / CSS
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
The Hut英国:英国领先的豪华在线百货商店
2019/07/26 全球购物
写一个方法1000的阶乘
2012/11/21 面试题
聊城大学毕业生自荐书
2014/02/01 职场文书
文化活动实施方案
2014/03/28 职场文书
2015年房地产个人工作总结
2015/05/26 职场文书
2016年推广普通话宣传周活动总结
2016/04/06 职场文书
一篇文章搞懂python混乱的切换操作与优雅的推导式
2021/08/23 Python
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers