python 键盘记录_记录键盘敲击次数 python实现

作为一个程序员,突然好奇自己每天敲击多少次键盘,于是研究了一下,写了一个python程序来记录。这里分享给大家。

其实实现很简单,给python安装一个package pynput。用其中自带的keyboard listener. 在输出统计数据的时候,有两种选择,一种是实时输出,一种是给用某一个特殊的键做为信号告诉代码输出统计数据。我选择的是后者。我用了page_down这个我从来不用的键做输出。这个script跑起来后,就不要管它,在用完电脑后按下特殊键,就可以输出统计数据了。

同时我也附上了我的某一天的统计图。

这一天我总共敲击键盘7836次。一个典型的英文单词长度是6个字母,相当于我敲了1300个单词。单纯的打字速度是100次每分钟,所以我一天只敲了13分钟的键盘。。。

#!/usr/bin/env python

from pynput import keyboard

def get_key_name(key):

if isinstance(key, keyboard.KeyCode):

return key.char

else:

return str(key)

def on_press(key):

key_name = get_key_name(key)

def on_release(key):

key_name = get_key_name(key)

if key_name in keys:

key_stat[key_name] = key_stat[key_name] + 1

if key_name == 'Key.page_down':

fp=open('key_stat.xyz','w')

for key in keys:

fp.write('%s: %i\n' %(key, key_stat[key]))

return False

key_stat = {}

keys = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0','`','Key.esc','Key.tab','Key.caps_lock','Key.shift','Key.ctrl','Key.alt','Key.cmd','Key.space','Key.alt_r','Key.cmd_r','Key.enter','Key.shift_r','Key.backspace','Key.up','Key.down','Key.left','Key.right','Key.ctrl_r',',','.','/',';','\'','\\',']','[','=','-']

for key in keys:

key_stat[key] = 0

with keyboard.Listener(

on_press = on_press,

on_release = on_release) as listener:

listener.join()

画图的代码如下

#!/usr/bin/python

import numpy as np

import matplotlib.pyplot as plt

fp = open('key_stat.xyz')

keys = []

stats = []

total = 0

for line in fp:

x, y = line.split()

x = x.replace('Key.','').replace(':','')

keys.append(x)

stats.append(int(y))

total += int(y)

print(total)

plt.bar(keys,stats)

plt.xticks(keys,rotation='45')

plt.show()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值