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

如何逐行打印.txt文件?游戏计分板打印返回[]问题求助

问题分析与解决

代码中的错误点

  1. 变量名不匹配:代码中打开文件时赋值给scores,但后续用score调用方法,这会触发NameError(除非是你笔误)。
  2. 文件指针位置问题:readlines()会一次性读取文件所有内容,并将文件指针移动到文件末尾。后续再调用readlines()时,指针已经在末尾,只能返回空列表[]。
  3. readlines()参数误用:readlines(hint)的参数是字节数提示,不是要读取的行数,你想用它读取前i+1行的写法是错误的。

修正后的代码

方式一:直接遍历文件对象(推荐,内存效率高)

直接遍历打开的文件对象,会自动逐行读取,无需手动处理指针:

with open("Scores.txt", "r") as scores:
    for line in scores:
        # strip() 移除每行末尾的换行符和首尾空格,按需选择是否使用
        print(line.strip())

方式二:先读取所有行到列表再遍历

如果需要后续复用文件内容,可以先把所有行存入列表:

with open("Scores.txt", "r") as scores:
    lines = scores.readlines()
    for line in lines:
        print(line.strip())

为什么你的代码输出[]

假设你修正了变量名的问题,第一次调用score.readlines()已经读取了所有内容,文件指针移到末尾。循环中再次调用score.readlines(i+1)时,没有内容可读,所以返回空列表。即便文件只有一行,第一次readlines()读取后指针到末尾,后续调用也只能得到[]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 15:55:33