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的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
Jul 09 Python
Python做简单的字符串匹配详解
Mar 21 Python
使用Python写一个贪吃蛇游戏实例代码
Aug 21 Python
Python数据分析之获取双色球历史信息的方法示例
Feb 03 Python
Python3使用turtle绘制超立方体图形示例
Jun 19 Python
python dict 相同key 合并value的实例
Jan 21 Python
tensorflow多维张量计算实例
Feb 11 Python
Python生成并下载文件后端代码实例
Aug 31 Python
PyQt5的QWebEngineView使用示例
Oct 20 Python
Django URL参数Template反向解析
Nov 24 Python
一文带你了解Python 四种常见基础爬虫方法介绍
Dec 04 Python
解决Python保存文件名太长OSError: [Errno 36] File name too long
May 11 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
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
php基于mcrypt的加密解密实例
2014/10/27 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
2017/08/02 PHP
PHP实现函数内修改外部变量值的方法示例
2018/12/28 PHP
实现laravel 插入操作日志到数据库的方法
2019/10/11 PHP
由Javascript实现的页面日历
2011/11/04 Javascript
Jquery刷新页面背景图片随机变换的实现方法
2013/03/15 Javascript
全面理解面向对象的 JavaScript(来自ibm)
2013/11/10 Javascript
JavaScript设计模式之外观模式介绍
2014/12/28 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
2015/03/02 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
VSCode搭建Vue项目的方法
2020/04/30 Javascript
深入了解JS之作用域和闭包
2020/06/16 Javascript
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
wxPython框架类和面板类的使用实例
2014/09/28 Python
python文件写入实例分析
2015/04/08 Python
Python Django使用forms来实现评论功能
2016/08/17 Python
Python变量赋值的秘密分享
2018/04/03 Python
python 常见字符串与函数的用法详解
2018/11/23 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
CSS 3.0文字悬停跳动特效代码
2020/10/26 HTML / CSS
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
小学门卫岗位职责
2013/12/17 职场文书
教育课题研究自我鉴定范文
2013/12/28 职场文书
优秀女职工事迹材料
2014/02/06 职场文书
小学生新年寄语
2014/04/03 职场文书
保护环境倡议书
2014/04/14 职场文书
维修工先进事迹
2014/05/29 职场文书
2015年七一建党节活动总结
2015/03/20 职场文书
忠犬八公的故事观后感
2015/06/05 职场文书