2015-05-29 409 views
2

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

我的数据是这样的:

1 abc  
2 bcd  
3 cde 

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

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

+0

列是否由空格分隔? – 2015-05-29 07:45:36

+2

鉴于[CSV处理]有一个标准模块(https://docs.python.org/3/library/csv.html#module-csv) - 确切的问题是什么? – guidot

+0

以逗号分隔值的方式是什么? –

回答

3
import csv 
with open(file) as f: 
    reader = csv.reader(f, delimiter="\t") 
    for i in reader: 
     print i[0] 

OR

变化,如果有必要的delimter空间。

reader = csv.reader(f, delimiter=" ") 

没有CSV模块,

import csv 
with open(file) as f: 
    for line in f: 
     print line.split()[0] 
1

您可以使用itertools.izip到箱发电机包含列和使用next拿到第一column.Its更有效,如果你有一个大的数据,你想拒绝多次索引!

import csv 
from itertools import izip 
with open('ex.csv', 'rb') as csvfile: 
    spamreader = csv.reader(csvfile, delimiter=' ') 
    print next(izip(*spamreader)) 
0

得到公正的第一列的列表:

with open('myFile.csv') as f: 
    firstColumn = [line.split(',')[0] for line in f] 
+0

可能是一个好主意,只需在f中执行'line'而不是执行'f.readlines()'编辑。 – gabhijit

+0

谢谢!我接受了一个明显改进的编辑版本。 – leekaiinthesky

0

你问题的第二部分:

中的LibreOffice Calc中打开的CSV文件(OpenOffice的应该工作一样,当方式)我得到一个对话框,我被问到关于该文档的一些东西,比如charakter编码以及分隔符的类型。如果你选择“空间”,它应该工作。你在这个对话框的底部有一个预览。