1.什么是CSV文件
- (Comma-Separated Values)是一种国际通用的一维、二维数据存储格式,其对应文件的扩展名为.csv,可使用Excel软件直接打开。
- CSV文件中每行对应一个一维数据,一维数据的各数据元素之间用英文半角逗号分隔(逗号两边不需要加额外的空格);
对于缺失元素,也要保留逗号,使得元素的位置能够与实际数据对应。 - CSV文件中的多行形成了一个二维数据,即一个二维数据由多个一维数据组成;
二维数据中的第一行可以是列标题,也可以直接存储数据(即没有列标题)。
2.CSV文件存储eg
90,70,95,98,65
- 对于二维数据,使用CSV文件存储的结果为,即5个一维数据
90,98,87
70,89,92
95,78,81
98,90,95
65,72,70
3.CSV文件的写操作
- csv模块的writer方法可以生成一个writer对象,使用该对象可以将数据,以逗号分隔的形式写入到CSV文件中。
csv.writer方法的语法格式为:
csv.writer(csvfile)
其中,csvfile是一个具有write方法的对象。
如果将open函数返回的文件对象作为实参传给csvfile,则调用open函数打开文件时必须加上一个关键字参数“newline=''”
- 生成writer对象后,就可以使用csv模块的writerow和writerows方法向CSV文件中写入数据。
csv.writerow和csv.writerows方法的语法格式分别为
writer.writerow(row)
writer.writerows(rows)
其中,writer是csv.writer方法返回的writer对象;
row是要写入到CSV文件中的一行数据(如一维列表);rows是要写入到CSV文件中的多行数据(如二维列表)。
4.CSV文件的读操作
- csv模块的reader方法可以生成一个reader对象,使用该对象可以将以逗号分隔的数据从CSV文件读取出来。
csv.reader方法的语法格式为:
csv.reader(csvfile)
其中,csvfile要求传入一个迭代器。
open函数返回的文件对象除了是可迭代对象,同时也是迭代器。
如果将文件对象作为实参传给csvfile,则调用open函数打开文件时应加上一个关键字参数“newline=''”。
返回的reader对象是一个可迭代对象,因此可以使用for循环直接遍历CSV文件中的每一行数据,每次遍历会返回一个由字符串组成的列表。
5.CSV文件学写eg
import csv
data2D=[
[70,89,92],
[95,78,81],
[98,90,95],
[65,72,70]
]
w:文件若不存在,则创建;文件若存在,则文件内容会被清空
因为要把打开的文件的对象传递给writer,所以这里要加该关键字参数newline
with open('D:\\Python\\score.csv, 'w', newline='') as f:
csvwriter=csv.writer(f)
csvwriter=writerow(['语文', '数学', '英语'])
csvwriter=writerows(data2D)
5.CSV文件读eg
ls2=[]
newline='':代表空字符串
with open('D:\\Python\\score.scv' , 'r' , newline='') as f:
scvreader=scv.reader(f)
for line in csvreader:
ls2.append(line)
print(ls2)
结果如下:'语文','90'都是字符串类型
[['语文', '数学', '英语'], ['90', '98', '87'], ['70', '89', '92’],
['95', '78', '81'], ['98', '90', '95'], ['65', '72', '70']]