我已经打开了一个csv文件,我想对每个以逗号分隔并且在同一行中的字符串进行排序:
ex :: file:
name,sal,dept
tom,10000,it
o / p ::字符串变量
中的每个字符串我有一个已经打开的文件,所以我不能使用“open”API,我必须使用“csv.reader”,它必须一次读取一行。
答案 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中描述的拆分功能。