如何从CSV文件中分离以逗号分隔的数据?
我打开了一个csv文件,想要对每一行里面用逗号分隔的字符串进行排序:
比如说:文件内容是:
name,sal,dept
tom,10000,it
输出结果:每个字符串都在一个字符串变量里
我已经打开了这个文件,所以不能使用“open”这个方法,我必须用“csv.reader”,它是一次读取一行的。
2 个回答
0
我不太确定我是否完全理解了你的问题。不过,你可以看看split这个函数,它在Python文档中有详细介绍。
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]
、data[1]
等来访问它们,而当前行的字段数可以通过 len(data)
在每次循环中获取)。
如果你知道文件正好有三列,并且希望为每一列使用不同的变量名,可以把循环的头部改成:
for name, sales, department in rd:
读取器返回的字段数据(就像表头一样)都是字符串。如果你知道比如说第二列是整数,并且想把它当作整数来处理,可以这样开始循环:
for data in rd:
data[1] = int(data[1])
或者,如果你使用的是带有命名变量的变体:
for name, sales, department in rd:
sales = int(sales)