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中用函数作为返回值和实现闭包的教程
Apr 27 Python
Python编程之多态用法实例详解
May 19 Python
详解Python的Django框架中manage命令的使用与扩展
Apr 11 Python
python3 与python2 异常处理的区别与联系
Jun 19 Python
Python实现手写一个类似django的web框架示例
Jul 20 Python
Django给admin添加Action的步骤详解
May 01 Python
Pandas-Cookbook 时间戳处理方式
Dec 07 Python
Python socket处理client连接过程解析
Mar 18 Python
jupyternotebook 撤销删除的操作方式
Apr 17 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
May 26 Python
重构Python代码的六个实例
Nov 25 Python
python数字图像处理:图像简单滤波
Jun 28 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开发规范手册之PHP代码规范详解
2011/01/13 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
php从memcache读取数据再批量写入mysql的方法
2014/12/29 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
PHP-FPM和Nginx的通信机制详解
2019/02/01 PHP
javaScript call 函数的用法说明
2010/04/09 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
使用js+jquery实现无限极联动
2013/05/23 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
实现js保留小数点后N位的代码
2014/11/13 Javascript
javascript操作数组详解
2014/12/17 Javascript
script标签属性用type还是language
2015/01/21 Javascript
浅谈javascript的Array.prototype.slice.call
2015/08/31 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
2015/12/10 Javascript
node.js require() 源码解读
2015/12/13 Javascript
Javascript数组Array方法解读
2016/03/13 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
react系列从零开始_简单谈谈react
2017/07/06 Javascript
vue全局组件与局部组件使用方法详解
2018/03/29 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
2018/09/05 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
Python科学计算环境推荐——Anaconda
2014/06/30 Python
详解Python3迁移接口变化采坑记
2019/10/11 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
利用Python实现Json序列化库的方法步骤
2020/09/09 Python
python中使用.py配置文件的方法详解
2020/11/23 Python
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
简历自荐信
2013/12/02 职场文书
学习计划书怎么写
2014/09/15 职场文书
画展邀请函
2015/01/31 职场文书
2015年万圣节活动总结
2015/03/24 职场文书
西游降魔篇观后感
2015/06/15 职场文书
《秋天的雨》教学反思
2016/02/19 职场文书
2019最新劳动仲裁申请书!
2019/07/08 职场文书
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL