版权声明:本博客内容归个人所有,如需转载,请标明出处。 https://blog.csdn.net/m0_37468171/article/details/89496711
一、读取csv文件
语法:
reader(csvfile,dialect='excel',**fmtparams)
参数说明:
csvfile,必须是支持迭代(Iterator)的对象,可以是文件(file)对象或者列表(list)对象,如果是文件对象,打开时需要加'b'
标志参数
dialect,编码风格,默认为excel的风格,也就是用逗号(,)分隔,dialect方式也支持自定义,通过调用register_dialect方法来注册。
fmtparam,格式化参数,用来覆盖之前dialect对象指定的编码风格。
举例:
import csv
with open("name.csv","r") as csvfile:
read = csv.reader(csvfile)
for i in read:
print(i)
二、写入csv文件
语法:
writer(csvfile,dialect='excel',**fmtparams)
参数说明:
首先open函数打开当前路径下的名字为m.csv的文件,如果不存在改文件,则创建它,返回myfile文件对象。
csv.writer(myfile)返回writer对象mywriter。
writerow()
方法是一行一行写入
writerows()
方法是一次写入多行
注意:如果文件m.csv事先存在,调用writer函数会先清空原文件中的文本,再执行writerow/writerows方法。
举例
import csv
with open('name.csv','w') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['id','url','keywords'])
data = [
('1','http://www.baidu.com','百度'),
('2','https://www.sina.com.cn/','新浪')
]
writer.writerows(data)
三、设置csv编码
py文件默认是ASCII编码
如果需要更改存储文件的编码
with open('name.csv','w',encoding='utf-8',newline='') as myfile:
或者用codecs模块
import csv
import codecs
with codecs.open('name.csv','w','utf-8') as myfile:
writer = csv.writer(myfile)
writer.writerow(['编号','网址','名称'])
四、自定义读取 dialect参数
import csv
csv.register_dialect('mydialect',delimiter='|',quoting=csv.QUOTE_ALL)
with open('name.csv','r',encoding='UTF-8') as csvfile:
lines = csv.reader(csvfile,'mydialect')
for i in lines:
print(i)
#注销: unregister_dialect(name)