Python“列表索引超出范围”其他规则起作用

2024-09-27 00:20:48 发布

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

我试着制作一个脚本来读取csv文件并确定一些信息。在

现在我收到一个错误:

Traceback (most recent call last):
  File "/home/pi/vullijst/vullijst.py", line 26, in <module>
    startdate = datetime.datetime.strptime (row[0],"%d-%m-%Y")
IndexError: list index out of range

部分脚本:

^{pr2}$

csv文件具有以下结构:

1-10-2016;12-10-2016;Test 1;test0@email.com;06-123456789 
12-10-2016;13-10-2016;Test 2;test1@email.com;06-123456789 
13-10-2016;14-10-2016;Test 3;test2@email.com;06-123456789 
14-10-2016;15-10-2016;Test 4;test3@email.com;06-123456790 
15-10-2016;16-10-2016;Test 5;test4@email.com;06-123456791 
16-10-2016;17-10-2016;Test 6;test5@email.com;06-123456792 
17-10-2016;18-10-2016;Test 7;test6@email.com;06-123456793

如果我注释掉这个规则,那么我就不会收到下面规则的错误。有人知道怎么回事吗?在


Tags: 文件csvtest脚本com信息mostdatetime
1条回答
网友
1楼 · 发布于 2024-09-27 00:20:48

您的csv文件在最后一行包含实际数据之后,似乎有一个空行。因此,您的脚本读取所有实际的行并对其进行处理,但当最后一行被解析为空列表时,它将中断。在这种情况下,您试图解析为日期的row[0]无效。在

要避免此问题,请在循环的顶部放置一个检查,如果row为空,则跳过循环体的其余部分。在

for row in csv_f:
    if not row: # skip empty rows
        continue
    startdate = datetime.datetime.strptime (row[0],"%d-%m-%Y")
    # ...

相关问题 更多 >

    热门问题