gpt4 book ai didi

python - Python抛出IndexError:列表索引超出范围,使用CSV

转载 作者:行者123 更新时间:2023-12-03 16:11:44 25 4
gpt4 key购买 nike

尝试读取CSV文件时,Python程序出现错误。最令人困惑的是,该错误最初并不存在,并且曾经有过“来来往往”的错误,但现在又回来了。该程序很简单,并且源CSV文件没有随时更改。这是相关的片段...

  with open('/home/rob/Applications/Ambient/timings.csv', 'rt') as csvfile:
fr = csv.reader(csvfile, delimiter=',', quotechar='|')
for row in fr:
previous=delay
delay=0
millis = int(row[1])

CSV文件具有以下结构:
0,824 
1,496
0,356
1,792
0,388
0,764
1,560
0,1264
1,724
0,2820
1,496
for ~88k lines

这是引发的错误:

Traceback (most recent call last): File "/home/rob/Applications/Ambient/AmbientDecode_02.py", line 82, in millis = int(row[1]) IndexError: list index out of range



如您所见,在设置对CSV的访问之后,对行[1]的访问发生在程序的早期,并且最初并没有引起错误。稍后出现错误时,我绝对没有更改Python代码的那部分或CSV文件。为了消磨时间,我开始进一步编写一些代码,然后突然程序再次开始运行。现在它再次停止,并且返回了相同的索引错误。如果我在millis = int(row [1])之后添加打印行,程序将运行???

我需要一个明确的答案,因为我无法继续摆弄后续代码,并希望以某种方式修复我不知道为什么它崩溃的代码???

有任何想法吗?

最佳答案

错误的意思是,在随后的〜88k行之一中,没有逗号,并且在逗号之后没有第二个数据。您可以修改程序以正常处理错误,因此:

with open('/home/rob/Applications/Ambient/timings.csv', 'rt') as csvfile:
fr = csv.reader(csvfile, delimiter=',', quotechar='|')
for row in fr:
previous=delay
delay=0
try:
millis = int(row[1])
except IndexError:
pass

上面的代码将忽略无法找到第二个数据的行(逗号后面),并继续到下一行。您可以通过使用上述逻辑替换上面代码中的 pass来定义在这种情况下需要执行的操作。

关于python - Python抛出IndexError:列表索引超出范围,使用CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25516830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com