Python索引器错误:列表索引超出范围,但仅在d的一列中

2024-09-27 00:22:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着读一个CSV文件,它有几千行和3列数据。我成功地阅读了第一和第二列,但是当我试图通读第三列时,我得到了一个超出范围的错误。换句话说:

row=0
rowMax = len(AudioAngle)
while row < rowMax:
    print (AudioAngle[row][0])
    print (AudioAngle[row][1])
    row=row+1

两种方法都有效

^{pr2}$

我只看第274行的文件。在

00:09.0    0    0
00:09.0    0    0
00:09.0    0    0
00:09.1             <--- line 274
00:09.1    0    0
00:09.1    0    0
00:09.2    0    0

代码对第二列中的空白没有问题,但在第三列中抛出错误。在

为什么第三列在我试图通读时向我抛出索引超出范围的错误?在


Tags: 文件csv数据方法代码len错误line
2条回答

解析器可能只使用空间作为分隔符—因此第一列和第二列之间的空间以及第二列和第三列之间的空间可以看作是将第一个单元格与第二列中的空单元格分隔开。为了消除错误,只需检查子列表的长度!(请使用for循环…)

for row in AudioAngle:
    print(row[0])
    print(row[1])
    if len(row) >= 3:
       print(row[2])

因为[1]和[2]不存在,所以274行的索引超出范围是合理的。在

如果您的数据可能存在也可能不存在,如第274行中的情况,您需要在尝试使用它之前检查它是否存在:

if (AudioAngle[row][0]):
    print (AudioAngle[row][0])

相关问题 更多 >

    热门问题