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编写类UNIX系统的命令行工具的教程
Apr 15 Python
使用Python写CUDA程序的方法
Mar 27 Python
简单的python协同过滤程序实例代码
Jan 31 Python
opencv改变imshow窗口大小,窗口位置的方法
Apr 02 Python
python人民币小写转大写辅助工具
Jun 20 Python
transform python环境快速配置方法
Sep 27 Python
对python读取CT医学图像的实例详解
Jan 24 Python
django-rest-swagger对API接口注释的方法
Aug 29 Python
python目标检测给图画框,bbox画到图上并保存案例
Mar 10 Python
Python异常原理及异常捕捉实现过程解析
Mar 25 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
Aug 03 Python
Python+OpenCV图像处理——图像二值化的实现
Oct 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
table标签的结构与合并单元格的实现方法
2013/07/24 PHP
codeigniter集成ucenter1.6双向通信的解决办法
2014/06/12 PHP
javascript语句中的CDATA标签的意义
2007/05/09 Javascript
一段效率很高的for循环语句使用方法
2007/08/13 Javascript
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
一个原生的用户等级的进度条
2010/07/03 Javascript
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
2015/02/04 Javascript
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
微信小程序商城项目之侧栏分类效果(1)
2017/04/17 Javascript
详解VUE 数组更新
2017/12/16 Javascript
使用vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)功能
2018/03/22 Javascript
layui弹出层按钮提交iframe表单的方法
2018/08/20 Javascript
js实现数字从零慢慢增加到指定数字示例
2019/11/07 Javascript
Vuejs中的watch实例详解(监听者)
2020/01/05 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
2020/07/24 Javascript
vue实现日历表格(element-ui)
2020/09/24 Javascript
python编写的最短路径算法
2015/03/25 Python
python中根据字符串调用函数的实现方法
2016/06/12 Python
python3解析库pyquery的深入讲解
2018/06/26 Python
python3+PyQt5 数据库编程--增删改实例
2019/06/17 Python
python的faker库用法
2019/11/28 Python
tensorflow多维张量计算实例
2020/02/11 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
2020/04/08 Python
Python类及获取对象属性方法解析
2020/06/15 Python
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
庆元旦文艺演出主持词
2014/03/27 职场文书
网络技术专业求职信
2014/07/13 职场文书
pytest进阶教程之fixture函数详解
2021/03/29 Python
移除Selenium中window.navigator.webdriver值
2022/06/10 Python