如何只读取CSV文件每行的第一列

时间:2015-05-29 07:44:20

标签: python csv

如何在Python中只读取CSV文件每行的第一列?

我的数据是这样的:

1 abc    
2 bcd    
3 cde

我只需要循环第一列的值。

另外,当我在calc中打开csv文件时,每行中的数据都在同一个单元格中,这是正常的吗?

4 个答案:

答案 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编码以及分隔符的类型。如果你选择“空格”,它应该工作。您可以在此对话框的底部进行预览。