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

Python调用read()函数无返回,keyboard按键记录写入文件后读不出怎么办

键盘记录文件读取问题修复

问题根因

  • 同一时间对pasos.txt同时持有读、写两个文件句柄,w写入模式打开时会直接清空文件原有内容,且IO操作存在资源冲突
  • 执行wf.write()写入后,文件指针停留在写入内容的末尾,直接执行读操作会从末尾开始读,自然读取不到任何数据

修复代码

分开写入、读取两个步骤,写完关闭写入句柄后再执行读取操作:

import keyboard
import time
import random
import os

# 录制按键并写入文件
lc = keyboard.record(until="shift")
sc = str(lc)
with open("pasos.txt", 'w', encoding='utf-8') as wf:
    wf.write(sc)

# 写入完成后单独打开文件读取
with open("pasos.txt", 'r', encoding='utf-8') as rf:
    data = rf.read()
    print(data)

# 回放逻辑后续调试
#keyboard.play(save,speed_factor=1)

可选同句柄读写方案

如果要在同一个文件句柄内完成写入和读取,使用r+模式并在写入后调用seek(0)将文件指针移到开头即可:

lc = keyboard.record(until="shift")
sc = str(lc)
with open("pasos.txt", 'r+', encoding='utf-8') as f:
    f.write(sc)
    f.seek(0)
    data = f.read()
    print(data)

额外提示:后续调试回放功能时注意,keyboard.play()接收的参数是KeyboardEvent对象列表,你当前转存的字符串无法直接传入使用,需要做序列化/反序列化处理。

内容的提问来源于stack exchange,提问作者Andromeda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 07:18:02