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 相关文章推荐
Pyhthon中使用compileall模块编译源文件为pyc文件
Apr 28 Python
Python中使用装饰器时需要注意的一些问题
May 11 Python
浅析Python中的join()方法的使用
May 19 Python
Python查看微信撤回消息代码
Jun 07 Python
pyqt5的QWebEngineView 使用模板的方法
Aug 18 Python
python 在指定范围内随机生成不重复的n个数实例
Jan 28 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
Jul 06 Python
Python中filter与lambda的结合使用详解
Dec 24 Python
pygame实现飞机大战
Mar 11 Python
python logging模块的使用
Sep 07 Python
python excel多行合并的方法
Dec 09 Python
python之基数排序的实现
Jul 26 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截取汉字乱码问题解决方法mb_substr函数的应用
2008/03/30 PHP
PHP 抓取网页图片并且另存为的实现代码
2010/03/24 PHP
php中常用字符串处理代码片段整理
2011/11/07 PHP
深入PHP运行环境配置的详解
2013/06/04 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
Javascript 刷新全集常用代码
2009/11/22 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
javascript HTML+CSS实现经典橙色导航菜单
2016/02/16 Javascript
Vue2.0子同级组件之间数据交互方法
2018/02/28 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
Vuex新手的理解与使用详解
2019/05/31 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
2019/07/16 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
微信小程序页面渲染实现方法
2019/11/06 Javascript
vue element-ui中table合计指定列求和实例
2020/11/02 Javascript
快速入门python学习笔记
2017/12/06 Python
python实现识别手写数字 python图像识别算法
2020/03/23 Python
python 获取等间隔的数组实例
2019/07/04 Python
Python计算IV值的示例讲解
2020/02/28 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
python如何调用php文件中的函数详解
2020/12/29 Python
Python实现京东抢秒杀功能
2021/01/25 Python
CSS3过渡transition效果实例介绍
2016/05/03 HTML / CSS
意大利会呼吸的鞋:Geox健乐士
2017/02/12 全球购物
英国现代家具和照明购物网站:Heal’s
2019/10/30 全球购物
String是最基本的数据类型吗?
2013/06/13 面试题
书法培训心得体会
2014/01/05 职场文书
工程承包协议书范本
2014/09/29 职场文书
2014年乡镇纪委工作总结
2014/12/19 职场文书
优秀班组事迹材料
2014/12/24 职场文书
2015年人事科工作总结
2015/04/28 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书
小学语文教学反思范文
2016/03/03 职场文书
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android
MySQL中varchar和char类型的区别
2021/11/17 MySQL