Python中CSV读取问题

0 投票
2 回答
1724 浏览
提问于 2025-04-16 09:30

我刚开始学习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 中关于列表的介绍

撰写回答