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

Python遍历CSV文件时,空单元格引发索引越界错误的解决办法

解决CSV遍历中空单元格引发的IndexError问题

方法1:遍历单元格时直接判断空值

如果用csv.reader读取文件,在循环里访问单元格前先检查是否为空,或按索引访问时先确认索引有效且单元格非空:

import csv

with open('your_file.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        # 遍历行内单元格,跳过空值(含纯空白字符的情况)
        for cell in row:
            if not cell.strip():
                continue
            # 此处编写非空单元格的处理逻辑
            print(cell)
        
        # 按索引访问指定列时,先检查索引范围和单元格内容
        if len(row) > 2 and row[2].strip():
            # 处理第3列(索引从0开始)的非空值
            print(row[2])

方法2:使用csv.DictReader按列名访问,规避索引错误

用DictReader通过列名获取值,不存在的列或空值会返回None,从根源避免索引越界:

import csv

with open('your_file.csv', 'r') as f:
    reader = csv.DictReader(f)
    for row in reader:
        target_value = row.get('target_column_name')
        if target_value and target_value.strip():
            # 处理非空值逻辑
            print(target_value)

方法3:预处理整行,过滤空单元格后再遍历

如果只需处理行内非空单元格,可以先过滤掉空值再遍历:

import csv

with open('your_file.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        # 过滤掉空单元格(含纯空白字符)
        non_empty_cells = [cell for cell in row if cell.strip()]
        # 遍历过滤后的非空单元格
        for cell in non_empty_cells:
            # 处理逻辑
            print(cell)

注:如果你的空单元格是严格的空字符串,直接用if cell:判断即可;strip()是为了处理空格、制表符组成的"伪空"单元格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 19:30:52