如何从CSV文件中分离以逗号分隔的数据?

0 投票
2 回答
589 浏览
提问于 2025-04-15 20:12

我打开了一个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)

撰写回答