如何在Python中只读取CSV文件每行的第一列?
我的数据是这样的:
1 abc
2 bcd
3 cde
我只需要循环第一列的值。
另外,当我在calc中打开csv文件时,每行中的数据都在同一个单元格中,这是正常的吗?
答案 0 :(得分:5)
import csv
with open(file) as f:
reader = csv.reader(f, delimiter="\t")
for i in reader:
print i[0]
或强>
如有必要,将分隔符更改为空格。
reader = csv.reader(f, delimiter=" ")
没有csv模块,
import csv
with open(file) as f:
for line in f:
print line.split()[0]
答案 1 :(得分:1)
您可以使用itertools.izip
来创建包含列的生成器,并使用next
来获取第一列。如果您拥有大量数据且想要拒绝多次索引,则效率更高!
import csv
from itertools import izip
with open('ex.csv', 'rb') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ')
print next(izip(*spamreader))
答案 2 :(得分:1)
要将第一列作为列表获取:
with open('myFile.csv') as f:
firstColumn = [line.split(',')[0] for line in f]
答案 3 :(得分:0)
问题的第二部分:
在LibreOffice Calc中打开csv文件时(openoffice应该以相同的方式工作)我得到一个Dialog,我被问到有关该文档的一些内容,比如charakter编码以及分隔符的类型。如果你选择“空格”,它应该工作。您可以在此对话框的底部进行预览。