索引错误:列表索引超出范围(Python),编号正确

索引错误:列表索引超出范围(Python),编号正确,python,index-error,Python,Index Error,我知道这个问题以前被问过多次,但是我已经仔细检查了编号,错误仍然出现。我想知道我是否还遗漏了什么 with open('imagefile.csv', newline='') as csvfile: imagelog = csv.reader(csvfile, delimiter=',', quotechar='|') for row in imagelog: if row[0] == 'IMG' and row[2].endswith('.RAW'):

我知道这个问题以前被问过多次,但是我已经仔细检查了编号,错误仍然出现。我想知道我是否还遗漏了什么

with open('imagefile.csv', newline='') as csvfile:
    imagelog = csv.reader(csvfile, delimiter=',', quotechar='|')
    for row in imagelog:
        if row[0] == 'IMG' and row[2].endswith('.RAW'):
            gpsAndAtt.append({ 'label': 'IMG', 'timeMS': float(row[1]), 'file': row[2]})
错误出现在上述代码的第4行。但是.csv文件如下所示,有3列。或者根据Python,0,1,2

IMG,330985033。原始
IMG,332985034.JPG
IMG,343985035.RAW

该代码旨在删除.csv中的元素,以便与其他文件一起使用

提前谢谢

编辑

原始问题中的排序空行问题(堆栈上的格式不好)

不是答案,因为表面上看,应该没有错误,但是如果您有潜在的错误输入,您应该在返回的“行”上有一个“保护”,因为您正在访问行[2]。 (为了便于诊断,请务必标记/显示有问题的行!)

因此:

for row in imagelog:
  if len(row) >= 2:
      ...

for
循环中调用脚本后,能否立即使脚本打印
?然后,您可以确切地看到
行的样子。我想您的csv文件中可能有一些空行。@jackprint行返回['{\\rtf1\\ansi\\ansicpg1252\\cooartf1504\\cocooasubrtf830']['{\\fonttbl\\f0\\fswiss\\fcharset0 Helvetica;}'['{\\colortbl\\red255\\green255\\blue255;}']['{\*\\expandedcolortbl;;}']['\\paperw11900\\paperh16840\\margl1440\\margr1440\\vieww10800\\viewh8400\\viewkind0']['\\pard\\tx566\\tx1133\\tx1700\\tx2267\\tx2834\\tx3401\\tx3968\\tx4535\\tx5102\\tx5669\\tx6236\\TX683\\PARDIRRONAL\\partightenfactor0'][]@JackParkinson然后是:回溯(最后一次调用):文件“/Users/Walker/Desktop/Important/SArONG Glitter Project/Code/Python/NetCDF/TextWranglerRunTemp getAttributesFromneLog.py”,第32行,if行[0]=“IMG”和行[2]。endswith('.RAW'):索引器:列表索引超出范围这些列表中没有任何逗号,看起来它们最多只有一个元素,而不是三个。我看不到”IMG,330985033.RAW“任何地方。你确定你读的是正确的文件吗?