python中的CSV读取问题

时间:2011-01-06 11:10:47

标签: python csv

我完全是Python(和编程)的新手,所以我坚持使用一些csv读数。

我在行中有一个csv文件,我有相同顺序的测量数据(在第一个条目的行中是例如1-4的id)。我想从行到行获取数据,我找到了reader.next()函数,但它对我来说有点奇怪。

for line in reader:
    print reader.next()

我只从第2行和第4行获得数据。

['2', '112', '14.3654', '90.4555', '105.45']
['4', '114', '180.2115', '90.4555', '105.45']

另一个问题是如何在线上单独输入? (例如:从行ID 2第三个条目 14.3654

感谢任何帮助。

2 个答案:

答案 0 :(得分:8)

您无需致电reader.next(),只需执行此操作:

for line in reader:
  print line

这将遍历CSV文件中的每一行并将其打印为列表:

来自the documentation on next

  

将读者的可迭代对象的下一行作为列表返回,根据当前方言进行解析。

您正在做的是文件中的每一行,打印下一行。第一次循环(你的for循环看第1行),它将打印第二行,内部你在CSV文件中的位置将是第2行。转到下一次迭代循环会将CSV文件中的位置增加到第3行。因此打印reader.next()会打印第4行。

要在每一行上获得单独的条目,您可以使用下标表示法访问它,就像它是一个列表一样:

for line in reader:
  print line[0]

有关使用列表的详细介绍,请参阅Dive Into Python's introduction to lists

答案 1 :(得分:2)

你想要

for line in reader:
    print line

然后,对于符合条目的个人条目,您可以:

for entry in line:
    print entry