如何从csv文件中分离逗号分隔数据?

时间:2010-03-09 10:38:41

标签: python

我已经打开了一个csv文件,我想对每个以逗号分隔并且在同一行中的字符串进行排序:

ex :: file:

name,sal,dept
tom,10000,it

o / p ::字符串变量

中的每个字符串

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

2 个答案:

答案 0 :(得分: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列表,这是一个完全通用的解决方案(即,您不需要事先知道文件有多少列:您将以{{1}的形式访问它们},data[0]等,当前行在循环的每个分支都有data[1]个字段。)

如果您知道该文件只有三列,并且更喜欢为每列的变量使用单独的名称,请将循环标题更改为:

len(data)

读者返回的字段数据(就像标题一样)都是字符串。例如,如果您知道第二列是int并希望将其视为int,请使用

启动循环
 for name, sales, department in rd:

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

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

答案 1 :(得分:0)

我不知道我是否正确理解了你的问题。您可能想要查看Python documentation中描述的拆分功能。