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

遍历文件行提取第二列生成列表时遇索引越界错误求助

问题描述

我尝试遍历自己生成的输出文件中的行,文件内容如下:

2020-03-19, 22.0
2020-03-20, 6.0
2020-03-21, 5.0

希望创建并打印包含第二列数字的列表。以下是我的main函数和存在问题的fReadInputFile函数:

def main(): 
    for file in FILE_PATH_INPUT:
        fWriteOutputFile(file)
    print(fReadOutputFile(FILE_PATH_OUTPUT))

def fReadInputFile(pFile):
    casesList = []
    with open(pFile, 'r') as fi:
        lines = fi.readlines()
        for line in lines:
            line = line.rstrip().split(',')
            casesList.append(str(line[1]))
    return casesList

预期结果:
[22, 6, 5](注:原预期结果中的66应为笔误,对应文件内容应为22)
实际报错:

casesList.append(str(line[1]))
IndexError: list index out of range
解决方法

报错原因是某一行经分割后没有索引为1的元素,大概率是文件中存在空行或格式不符合要求的行。按以下方式修复函数即可:

  1. 跳过空行,避免处理无内容的行
  2. 先检查分割后的元素数量,确保有至少2个元素再访问索引1
  3. 按需转换数字类型(原文件第二列为浮点数,可转为整数或保留浮点数,无需转字符串)

修改后的fReadInputFile函数:

def fReadInputFile(pFile):
    casesList = []
    with open(pFile, 'r') as fi:
        for line in fi:
            stripped_line = line.strip()
            # 跳过空行
            if not stripped_line:
                continue
            parts = stripped_line.split(',')
            # 确保分割后有至少2个元素
            if len(parts) >= 2:
                # 去除空格并转换为整数(若需保留小数可改用float)
                num = float(parts[1].strip())
                casesList.append(int(num))
    return casesList

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:35:19