使用Python在CSV文件中获取特定列

时间:2014-05-26 01:31:41

标签: python-2.7 csv

我知道这是一个常见的问题,有很多stackoverflow帖子,但我似乎无法解决我的问题。我正在尝试使用以下代码在CSV文件中打印特定列:

with open('filename.csv', 'rb') as f:
    reader = csv.reader(f)
    for row in reader:
        print row[0]

这似乎是我在大多数在线帖子中看到的语法,但由于某些原因它对我不起作用 - 我得到一个"索引超出范围"每次运行它都会出错。我不确定在这种情况下这意味着什么 - 我的csv每行有几个非空列。如果我写

print row

我得到一个输出。此外,我验证了该输出的类型是一个列表。任何建议或帮助将不胜感激!

修改

问题似乎已经解决了......我不确定为什么代码看起来是一样的:

with open('filename.csv', 'rb') as f:
    reader = csv.reader(f)
    for row in reader:
        print row[0]

对不起,对于可能偶然发现这种情况的其他人,我没有明确的答案。但感谢那些试图帮助的人!

1 个答案:

答案 0 :(得分:0)

检查文件中是否有空行,这可能会导致行有空列表。尝试使用以下方法查找有问题的行:

import csv

with open('filename.csv', 'rb') as f:
    reader = csv.reader(f)
    counter = 0
    for row in reader:
        if len(row) == 0:
            counter += 1
            print counter, row