2010-03-09 80 views
0

我已经开了一个CSV文件,我想每一个是逗号分隔的字符串进行排序,并在同一行:如何从csv文件分开逗号分隔的数据?

前::文件:

name,sal,dept 
tom,10000,it 

O/P ::每个串串可变

我有一个文件,该文件已经打开,所以我不能用“开放”的API,我必须使用“csv.reader”这不得不一次读取一行。

+3

@Rahul,对不起,我不明白你在问什么。你能提供你的输入和期望的输出块引用的例子吗? – MattH 2010-03-09 10:42:47

+0

你问如何使用csv? http://docs.python.org/library/csv.html文档有什么问题? – 2010-03-09 10:57:36

回答

0

我不知道我是否正确地理解你的问题。你可能想看看反正在Python documentation描述的分裂功能。

+0

我只想从csv文件的行中获取数据,因为我的第一行文件包含字段名称,并且所有行都包含数据。 – Rahul99 2010-03-09 13:19:51

2

如果打开文件进行读取绑定到一个变量名,说fin;假设你正在使用Python 2.6,你知道该文件不是空的(至少具有标题行):

import csv 

rd = csv.reader(fin) 
headers = next(rd) 
for data in rd: 
    ...process data and headers... 

在Python 2.5,使用headers = rd.next()代替headers = next(rd)

这些版本的使用领域data的列表,这是一个完全通用的解决方案(即不需要事先知道文件有多少列有:你访问它们为data[0],等,和当前行具有len(data)字段在循环的每个腿)。

如果知道该文件具有完全相同的三列,并更愿意使用不同的名称,每列有一个变量,在环头更改为:

for name, sales, department in rd: 

现场数据由读写器(就像是返回标题)都是字符串。如果您知道的例子,第二列是一个int,并希望把它当作这样的,开始循环与

for data in rd: 
    data[1] = int(data[1]) 

,或者,如果您使用的命名变量变异:

for name, sales, department in rd: 
    sales = int(sales)