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

Python遍历文件取拆分后第2个元素报list index out of range错误

报错原因
  • 文件中存在空行、仅包含空白字符(空格、制表符、换行符)的行,调用默认参数的rsplit()方法后会返回空列表[],访问索引1时就会触发索引越界错误。
  • 还有可能存在拆分后列表长度不足2的行,你之前输出的内容只是部分遍历结果,不代表文件所有行拆分后都满足长度要求。
解决方法

方案1:先校验列表长度再取值

优先推荐该方案,兼容所有不符合长度要求的异常行:

for line in file:
    splitline = line.rsplit()
    # 仅当拆分后列表长度≥2时才取值
    if len(splitline) >= 2:
        print(splitline[1])

如果需要定位异常行,可以添加行数统计的日志:

# enumerate可以同时输出行号,方便排查问题
for line_num, line in enumerate(file, start=1):
    splitline = line.rsplit()
    if len(splitline) >= 2:
        print(splitline[1])
    else:
        print(f"第{line_num}行格式异常,拆分结果为:{splitline}")

方案2:提前过滤空白行

如果确认所有非空白行拆分后长度都≥2,可以直接过滤空白行再处理:

for line in file:
    # 跳过空行和全空白字符的行
    if not line.strip():
        continue
    splitline = line.rsplit()
    print(splitline[1])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:15:00