Python csv模块读取CSV文件(附带实例)
CSV 文件是一种使用特定符号分隔各列数据的文本文件,通常以逗号分隔,但是也可以使用其他符号分隔。使用 Python 标准库中的 csv 模块可以读取 CSV 文件中的数据。
下图是本节要读取的 CSV 文件:

图 1 要读取的CSV文件
虽然 csv 是 Python 标准库中的模块,但是在使用该模块之前,仍然需要像使用第三方模块一样,使用 import 语句导入模块。然后可以使用 csv 模块中的 reader() 函数读取 CSV 文件中的数据,该函数的返回值是一个 reader 对象。
下面的代码是使用 open() 函数以读取模式打开一个 csv 文件,然后使用该模块中的 reader() 函数读取 csv 文件中的所有数据。如需在屏幕上打印读取到的数据,需要将 reader() 函数的返回值作为参数传递给 list() 函数。
如需将读取到的多列数据拆分为多个单列数据,可以使用下面的代码:
使用的变量数量由文件中的数据总列数决定:
下图是本节要读取的 CSV 文件:

图 1 要读取的CSV文件
虽然 csv 是 Python 标准库中的模块,但是在使用该模块之前,仍然需要像使用第三方模块一样,使用 import 语句导入模块。然后可以使用 csv 模块中的 reader() 函数读取 CSV 文件中的数据,该函数的返回值是一个 reader 对象。
下面的代码是使用 open() 函数以读取模式打开一个 csv 文件,然后使用该模块中的 reader() 函数读取 csv 文件中的所有数据。如需在屏幕上打印读取到的数据,需要将 reader() 函数的返回值作为参数传递给 list() 函数。
import csv file = open('E:\\销售数据.csv', 'r') data = csv.reader(file) print(list(data)) file.close()代码的运行结果如下:
[['面包','30'],['饼干','20'],['蛋挞','50'],['果汁','30'],['啤酒','10'],['红酒','60']]
如需将读取到的多列数据拆分为多个单列数据,可以使用下面的代码:
import csv file = open('E:\\销售数据.csv', 'r') names = [] counts = [] for x, y in csv.reader(file): names.append(x) counts.append(int(y)) file.close()在上面的代码中添加下面的代码,可以检测两个变量中保存的数据。由于本例 CSV 文件中的数据只有两列,所以在 for 语句中使用 x 和 y 两个变量。
使用的变量数量由文件中的数据总列数决定:
print(names, counts, sep='\n')代码的运行结果如下:
['面包', '饼干', '蛋挞', '果汁', '啤酒', '红酒'] [30, 20, 50, 30, 10, 60]