Python中CSV读取问题
我刚开始学习Python(还有编程),所以在读取csv文件时遇到了一些问题。
我有一个csv文件,里面的每一行都是测量数据,顺序是一样的(比如第一列是ID,像1-4这样的)。我想从每一行获取数据,我发现了一个叫reader.next()的函数,但对我来说它的工作方式有点奇怪。
for line in reader:
print reader.next()
而且我只获取到了第二行和第四行的数据。
['2', '112', '14.3654', '90.4555', '105.45']
['4', '114', '180.2115', '90.4555', '105.45']
另一个问题是,我该如何获取行中的单独条目?(比如:在ID为2的那一行中,第三个条目是14.3654)
非常感谢任何帮助。
2 个回答
2
你想要
for line in reader:
print line
那么对于每一行的单独条目,你可以这样写:
for entry in line:
print entry
8
你不需要调用 reader.next()
,只需这样做:
for line in reader:
print line
这样就能遍历你CSV文件中的每一行,并将其作为列表打印出来:
来自 关于 next
的文档:
返回读取器可迭代对象的下一行,按照当前的格式解析成列表。
你之前的做法是,对于文件中的每一行,打印下一行。第一次循环时(也就是你的 for
循环查看第一行),它会打印第二行,而你在CSV文件中的位置会变成第二行。接下来再进入循环时,你的位置会增加到第三行。因此,打印 reader.next()
实际上会打印第四行。
如果你想获取每一行中的单个条目,可以像访问列表一样使用下标来访问它:
for line in reader:
print line[0]
想要更好地了解如何使用列表,可以查看 Dive Into Python 中关于列表的介绍。