【发布时间】:2014-10-20 10:17:21
【问题描述】:
我在尝试读取 CSV 文件时遇到了 Python 程序错误。最令人困惑的是错误最初并不存在,并且以前“来来去去”一次,但现在又回来了。该程序很简单,源 CSV 文件在任何时候都没有被更改过。这里是相关的sn-p...
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(最近一次调用最后一次): 文件“/home/rob/Applications/Ambient/AmbientDecode_02.py”,第 82 行,在 毫= int(行[1]) IndexError: 列表索引超出范围
正如您所见,在设置对 CSV 的访问之后,在程序的早期就开始访问行 [1],并且最初它并没有导致错误。后来出现错误时,我肯定没有更改 Python 代码的那部分或 CSV 文件。为了打发时间,我开始进一步编写一些代码,突然程序又开始运行了。现在它再次停止,并且返回了相同的索引错误。如果我在 millis = int(row[1]) 之后添加 print row 程序运行???
我需要一个明确的答案,因为我不能继续摆弄后续代码并希望以某种方式修复我不知道它为什么崩溃的代码???
有什么想法吗?
罗伯
【问题讨论】:
-
这意味着在随后的 ~88k 行之一中,逗号后面没有逗号和第二个数据。
-
我检查了文件,但没有发生。如上所示,该错误发生在 CSV 文件的第一行。 “打印行”让它运行正常?
标签: python csv indexing crash range