Python奇怪的列表行为

Python奇怪的列表行为,python,csv,Python,Csv,我试图使用csv模块更新csv文件,但发现一些奇怪的行为: 考虑以下代码来读取csv import csv reader = csv.reader(open('/Users/r2-d2/Desktop/output.csv', 'rb'), delimiter = '\t') 用这种方式打印 for row in reader: print row 这段代码完全有效,我得到了多个列表,每个列表代表我的一行简历 现在考虑这个代码: for row in reader: prin

我试图使用csv模块更新csv文件,但发现一些奇怪的行为:

考虑以下代码来读取csv

import csv
reader = csv.reader(open('/Users/r2-d2/Desktop/output.csv', 'rb'), delimiter = '\t')
用这种方式打印

for row in reader:
    print row
这段代码完全有效,我得到了多个列表,每个列表代表我的一行简历

现在考虑这个代码:

for row in reader:
    print row[0]
由于我不知道的原因,此代码不起作用。(索引器:列表索引超出范围)编辑:行[0]为空,但任何其他索引即使非空也会出错

然而,这个代码

for row in reader:
    print row[:3]
正如预期的那样工作,我得到每行的前3个条目作为列表


我肯定遗漏了什么。

您的某些行肯定是空的

my_list[0]
当my_列表为空时抛出和
索引器

my_list[:3]
永远不会中断,因为它会尝试为您提供所需的数据片段,但如果my_list短于请求的最后一个索引,则返回的数据会更少

尝试:

编辑:

我认为您应该尝试以标准模式而不是二进制模式打开文件:

reader = csv.reader(open('/Users/r2-d2/Desktop/output.csv', 'r'), delimiter = '\t')

你能把你的问题包括在CSV文件中吗?有没有行是空的?是的,有些行是空的,但即使是非空的行,它们也需要更多的信息。请使用帮助您写一个更清楚的问题。第一行确实是空的,但其他作品(如3或4)都不是空的,但仍然是错误的。您能给我们看一下文件内容吗?请编辑你的问题。请看我的编辑,可能会help@giudia:一旦出现错误,执行将停止。您的程序没有机会查看第3行和第4行,因为第1行出现错误。
reader = csv.reader(open('/Users/r2-d2/Desktop/output.csv', 'r'), delimiter = '\t')