我知道这是一个常见的问题,有很多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]
对不起,对于可能偶然发现这种情况的其他人,我没有明确的答案。但感谢那些试图帮助的人!
答案 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