数据持久化----csv

版权声明:本博客内容归个人所有,如需转载,请标明出处。 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)

猜你喜欢

转载自blog.csdn.net/m0_37468171/article/details/89496711