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

Python程序触发EOFError时无法打印文件内容,请求排查问题

问题定位与修复

问题原因

核心问题是文件指针位置错误:用a+模式打开文件时,文件指针默认处于文件末尾。当你写入多个姓名后,指针停在文件最后一行的末尾,此时调用readlines()会从当前指针位置开始读取,自然读不到任何内容。

修复后的代码

file1 = open("names.txt",'a+')

try:
    while True:
        name = input("Whats your name: ") 
        file1.write(name)
        file1.write('\n')
        file1.flush()  # 确保写入内容同步到磁盘
except EOFError:
    file1.seek(0)  # 将文件指针移回文件开头
    lines = file1.readlines()
    for line in lines:
        print('hello', line.strip())  # 去掉换行符避免重复空行
file1.close() 

关键修改点

  • file1.seek(0):强制将文件指针移到文件起始位置,这样读取时就能获取到所有已写入的内容。
  • file1.flush():写入后立即刷新缓冲区,确保内容真正写入磁盘,避免读取到旧的缓存内容。
  • line.strip():去除每行末尾的换行符,解决打印时出现多余空行的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:10:15