首页 > 编程笔记 > Python笔记 阅读:2

Python csv模块读取CSV文件(附带实例)

CSV 文件是一种使用特定符号分隔各列数据的文本文件,通常以逗号分隔,但是也可以使用其他符号分隔。使用 Python 标准库中的 csv 模块可以读取 CSV 文件中的数据。

下图是本节要读取的 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]

相关文章