失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 使用pynput模块监听用户键盘输入 保存至txt

使用pynput模块监听用户键盘输入 保存至txt

时间:2023-07-16 17:34:40

相关推荐

使用pynput模块监听用户键盘输入 保存至txt

使用pynput模块监听用户键盘输入,保存至txt

# -*- coding: utf-8 -*-ahello worldimport sys, osfrom pynput.keyboard import Controller, Key, Listenerfrom pynput import keyboardimport time# from tkinter import *# 开始时间start = time.time()# 结束时间end = time.time()fun_start = 0time_interval = 0index = 0# 间隔时间dict = {'interval_times': 0, 'max_interval': 0., 'interval_location': []}count = 0# 第一次按键时间,第一次按键释放到第二次按键时间count_dict = {'first_time': 0., 'first_p_to_second_r': 0.}# 回车,空格,tab键keyBoard_dict = {'Key.enter': '\n','Key.space': ' ',"Key.tab": '\t'}# 得到键盘按下的值,写入文本里def get_key_name(key):if isinstance(key, keyboard.KeyCode):with open(r'dict/key_record.txt', 'a', encoding='utf-8') as f:f.write(key.char)return key.charelse:#如果敲击了删除键就写进txtif str(key) in ['Key.backspace']:print('用户敲击了删除键')with open(r'dict/key_record.txt', 'a', encoding='utf-8') as f:f.write('删除键')if str(key) in ['Key.enter', 'Key.space', 'Key.tab']:with open(r'dict/key_record.txt', 'a', encoding='utf-8') as f:f.write(keyBoard_dict[str(key)])return str(key)# 监听按下键盘def on_press(key):global fun_start, time_interval, index, dict, count, count_dict# 拿到一个开始的时间fun_start = time.time()if count == 0:count_dict['first_time'] = fun_startif index == 0 or index == 1:# 取到间隔时间差time_interval = fun_start - startif index == 1 and time_interval > 2.:# 停顿位置dict["interval_location"].append(key)# 停顿次数dict['interval_times'] += 1# 最长停顿dict['max_interval'] = time_interval if time_interval > dict['max_interval'] else dict['max_interval']index += 1print("正在按下:", get_key_name(key))# 监听释放键盘def on_release(key):global start, fun_start, time_interval, index, count, count_dictcount += 1if count == 2:# 第一个键按下到第二个键释放的时间count_dict['first_p_to_second_r'] = time.time() - count_dict['first_time']count = 0# 按下一个键盘到释放的时间print("按下按键到松开的时间: ",round(time.time() - start - time_interval,2))start = time.time()index = 1# print("已经释放:", get_key_name(key))if key == Key.esc:# 停止监听return False# 开始监听def start_listen():# 开启监听,放入监听方法和释放方法with Listener(on_press=on_press, on_release=on_release) as listener:listener.join()if __name__ == '__main__':# 开始监听,按esc退出监听start_listen()print(dict)

执行结果:

如果觉得《使用pynput模块监听用户键盘输入 保存至txt》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。