首页 > 解决方案 > IndexError: list index out of range, in CSV 但如果我打印 row[index] 它可以工作

问题描述

我有一个 CSV 和以下代码:

with open("results.csv", 'rt', encoding='UTF-8', errors='ignore') as file:
    reader = csv.reader(file, skipinitialspace=True, escapechar='\\')
    A = 0
    for row in reader:
        if row[4] in validclubs and "A" in row[0]:
            A = A + 1
print(A)

但它返回:

Traceback (most recent call last): if row[4] in validclubs and "A" in row[0]: IndexError: list index out of range.

但是,如果我将代码更改为:

with open("results.csv", 'rt', encoding='UTF-8', errors='ignore') as file:
    reader = csv.reader(file, skipinitialspace=True, escapechar='\\')
    A = 0
    for row in reader:
        if row[4] in validclubs and "A" in row[0]:
            print(A)

它将print(A)正确并返回相同的错误。因此,它不会超出范围,因为它可以正确打印。那么是什么导致了错误呢?

标签: pythoncsv

解决方案


似乎该错误不是由第一次满足条件引起的,而是由第二次(或更晚)时间引起的。因此,您设法打印一次“A”,然后才遇到错误。


推荐阅读