Python 操作csv文件常用的属性和方法csv 模块核心方法方法说明示例csv.reader()从文件对象读取 CSV 数据reader csv.reader(file)csv.writer()将数据写入 CSV 文件writer csv.writer(file)csv.DictReader()将 CSV 行读取为字典带表头dict_reader csv.DictReader(file)csv.DictWriter()将字典写入 CSV 文件需指定字段名dict_writer csv.DictWriter(file, fieldnames)csv.register_dialect()注册自定义 CSV 格式如分隔符csv.register_dialect(‘mydialect’, delimiter’csv.unregister_dialect()删除已注册的方言csv.unregister_dialect(mydialect)csv.list_dialects()列出所有已注册的方言print(csv.list_dialects())csv.reader 和 csv.writer 对象常用方法方法说明适用对象__next__()迭代读取下一行或使用for循环readerwriterow(row)写入单行数据writerwriterows(rows)写入多行数据列表的列表writercsv.DictReader 和 csv.DictWriter 对象特性特性/方法说明示例fieldnames字段名列表DictReader自动从首行获取dict_reader.fieldnameswriteheader()写入表头行DictWriter专用dict_writer.writeheader()常用参数说明参数说明示例值适用方法delimiter字段分隔符,默认,\treader/writerquotechar引用字符包围特殊字段默认reader/writerquoting引用规则csv.QUOTE_ALL全部引用reader/writerskipinitialspace忽略分隔符后的空格True/Falsereaderlineterminator行结束符\r\n默认writerdialect预定义的方言名称excel默认所有方法实操importcsvimportos#读取文件打开csv文件defread_csv():withopen(data.csv,r,encodingutf-8)asf:#创建读取器对象readercsv.reader(f)forrowinreader:print(row)# [name, city, age]# [zhangsan, shenzhen, 23]# [lisi, guangzhhou, 24]# [wangwu, shanghai, 28]#读取字典defread_csv_as_dict():withopen(data.csv,r,encodingutf-8)asf:#创建读取器对象 表头会作为字典的keyreadercsv.DictReader(f)#遍历每一行返回字典forrowinreader:print(row)# {name: zhangsan, city: shenzhen, age: 23}# {name: lisi, city: guangzhhou, age: 24}# {name: wangwu, city: shanghai, age: 28}#基础写入defwrite_csv():withopen(data.csv,w,encodingutf-8,newline)asf:data[[name,city,age],[liubei,shenzhen,23],[zhangfei,guangzhhou,24],[guanyu,shanghai,28],]writercsv.writer(f)#写入方式1writer.writerow(data[0])#写入所有行writer.writerows(data[1:])#字典写入defwrite_csv_with_dict():withopen(data.csv,w,encodingutf-8,newline)asf:data[{name:liubei,city:shenzhen,age:23},{name:zhangfei,city:guangzhhou,age:24},{name:guanyu,city:shanghai,age:28},]#创建写入器对象writercsv.DictWriter(f,fieldnames[name,city,age])#写入表头writer.writeheader()#写入所有行writer.writerows(data)#追加数据defappend_csv():file_existsos.path.exists(data.csv)withopen(data.csv,a,encodingutf-8,newline)asf:data[{name:machao,city:lanzhou,age:23},{name:zhouyu,city:nanjing,age:24},]ifnotfile_exists:#如果文件不存在写入表头writer.writeheader()#创建写入器对象writercsv.DictWriter(f,fieldnames[name,city,age])#写入所有行writer.writerows(data)if__name____main__:read_csv()read_csv_as_dict()write_csv()read_csv_as_dict()append_csv()read_csv_as_dict()