You need to enable JavaScript to run this app. 如何解决Python运行代码时出现的“Index out of range”索引越界错误
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Python运行代码时出现的“Index out of range”索引越界错误

问题原因

报错Index out of range指向rec[1],说明调用rec.split(",")拆分单行内容后得到的列表长度小于2,不存在索引为1的元素,通常是以下几种情况导致:

  • paymast.txt文件中存在空行,空行拆分后得到的列表为[''],长度仅为1
  • 文件中某行的逗号分隔字段数量不足2,比如只有ID字段、没有后续的姓名等内容,或者行内容缺少分隔逗号
  • 文件末尾存在空的换行,遍历到该行时拆分后长度不满足要求
修复方案

你可以在拆分后先校验列表长度,不符合要求的行直接跳过,同时可以打印异常行方便排查源文件的格式问题,修改后的代码如下:

pay = open("paymast.txt","r")
sal = open("saltyp.txt","w")

heading = pay.readline()

for rec in pay:
    # 先去除首尾空白、跳过空行
    rec = rec.strip()
    if not rec:
        continue
    rec = rec.split(",")
    # 校验字段数是否符合要求
    if len(rec) < 6:
        # 可打印异常行排查问题
        print(f"跳过格式异常行:{rec},字段数不足6")
        continue
    id = rec[0]
    name = rec[1]
    gender = rec[2]
    code = rec[3]
    grade = rec[4]
    salary = rec[5]
    salary = salary.strip('\n')
    
    # 新增换行符,避免所有记录挤在同一行
    record = id+","+name+","+gender+","+code+","+grade+","+salary + "\n"

    if int(salary) < 1500 and gender == "M":
        sal.write(record)

pay.close()
sal.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 11:27:01