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

为何我的Python程序运行时出现IndexError: list index out of range错误?

问题原因

你遇到的IndexError是因为两次调用readlines()导致文件指针耗尽。文件对象的读取是流式的,第一次调用test.readlines()会读取文件所有内容并将指针移到文件末尾,第二次调用时会返回空列表,此时访问索引[1]自然会报错。

修复方案

方案1:一次性读取所有行到列表再操作

先把文件内容全部读入一个列表,再从列表中取对应行转换计算:

test = open("test.txt", "r")
lines = test.readlines()
num1 = int(lines[0].strip())  # strip()去除换行符等空白字符
num2 = int(lines[1].strip())
print(num1 - num2)
test.close()  # 手动关闭文件

方案2:逐行读取(用readline())

每次调用readline()读取一行,避免指针耗尽:

test = open("test.txt", "r")
num1 = int(test.readline().strip())
num2 = int(test.readline().strip())
print(num1 - num2)
test.close()

方案3:推荐用法(with语句自动管理文件)

with语句会在代码块结束后自动关闭文件,更安全简洁:

with open("test.txt", "r") as test:
    lines = test.readlines()
    num1 = int(lines[0].strip())
    num2 = int(lines[1].strip())
    print(num1 - num2)

注意:加上.strip()是为了去除每行末尾的换行符\n,虽然int()转换时通常会忽略空白,但这个习惯能避免特殊场景下的转换错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 12:23:16