1. CSV简介
CSV(Comma Separated Values)是逗号分隔符文本格式,常用于Excel和数据库的导入和导出,Python标准库的CSV模块提供了读取和写入CSV格式文件的对象。
1.1 csv.reader对象和csv文件的读取
csv.reader(csvfile,dialect='excel',**fmtparams),主要用于文件的读取,返回一个reader对象用于在csv文件内容上进行行迭代。
参数csvfile是文件对象或者list对象;dialect 用于指定csv的格式模式不同程序输出的csv格式有细微差别;fmtparams是一系列参数列表,主要用于设置特定的格式,以覆盖dialect中的格式。
csv.reader对象是可迭代对象,包含以下属性:
csv.reader().dialect #返回其dialect
csv.reader().line_num #f返回读入的行数
示例1:使用reader对象读取csv文件scores.csv,文件内容如下:
学号,姓名,性别,班级,语文,数学,英语
100001,小雨,女,1班,72,85,87
100002,小雪,女,2班,67,87,77
100003,小宇,男,3班,88,78,78
100004,小天,男,1班,76,87,84
100005,小军,男,3班,79,86,83
#_*_coding=utf-8
importcsvdef readcsv(csvfilepath):#列表方式读取
with open(csvfilepath, 'r', newline='',encoding='utf-8') as csvfile:
reader= csv.reader(csvfile)#创建csv.reader对象
for row inreader:#读取出的内容是列表格式的
print(row)print(reader.line_num)if __name__=='__main__':
readcsv(r'E:\2018-12-19\scores.csv')#输出
#['学号', '姓名', '性别', '班级', '语文', '数学', '英语']
#['100001', '小雨', '女', '1班', '72', '85', '87']
#['100002', '小雪', '女', '2班', '67', '87', '77']
#....(略)
#6
reader对象
1.2 csv.writer对象和csv文件的写入
csv.writer(csvfile,dialect='excel',**fmtparams),主要用于把列表数据写入到csv文件。
其中参数csvfile是任何支持write()方法的对象,通常为文件对象;dialect 和fmtparams与csv.reader对象构造函数中的参数意义相同。
csv.writer对象包含以下属性和方法:
writer.writerow(row) #方法,写入一行数据
writer.writerows #方法,写入多行数据
writer.dialect #只读属性,返回其dialect
示例2: 使用writer对象写入csv文件
importcsvdef writecsv(csvfilepath):#列表方式写入
rows=[(100006,'小江','男','1班','77','79','80'),(100007,'小美','女','4班','77','88','80')]
with open(csvfilepath,'a+',newline='')as csvfile:
writer= csv.writer(csvfile,dialect='excel')
writer.writerows(rows)#写入多行
print(writer.dialect)if __name__=='__main__':
writecsv(r'E:\2018-12-19\scores.csv')
writer对象
1.3 csv.DictReader对象和csv文件的读取
使用csv.reader对象从csv文件读取数据,结果为列表对象row,需要通过索引row[i]访问。如果希望通过csv文件的首行标题字段名访问,则可以使用csv.DictReader对象读取。
csv.DictRea