主要内容:
小目标:了解csv文件格式,掌握csv模块 主要内容:什么是csv文件; csv模块相关操作;
如果看完这篇文章,你还是弄不明白csv文件操作; 你来找我,我保证不打你,我给你发100的大红包。
1. csv文件
ini文件:使用纯文本来存储表格数据,并以指定的分隔符进行分隔; csv文件作用:数据文件,例如:各大数据平台的数据集 csv文件每一行都是一条记录,每行字段都相同col1,col2,col3 v1,v2,v3 ......
2. csv文件基本操作:
csv文件操作需要使用csv模块一个例子:
#导入csv模块 import csv fpath = r'test.csv' f = open(fpath) #创建csv reader对象 csvf = csv.reader(f) #通过for遍历csv文件 for row in csvf: print(row) f.close()
3.csv文件写入
3.1 csv.writer写入文件写入步骤:
创建对象:csvw = csv. writer(iterable [, dialect='excel'],…) #iterable一般为有写权限的文件对象 写入一行:csvw.writerow(row) #row为列表或者可迭代对象 写入多行:csv.writerow(rows) # rows例如:[[],[],[]...]一个案例
#导入模块 import csv fpath = r'C:\Users\hyg\Desktop\test\1.csv' f = open(fpath, 'w') #创建csv对象 csvw = csv.writer(f) #写入一行数据 csvw.writerow([1,2,3]) #写入多行数据 csvw.writerows([[3,4,5],[7,8,9]]) #关闭文件 f.close()
结果:
1,2,3 3,4,5 7,8,93.2 csv相关参数设置
csv读写可以指定下面参数:
参数 说明 delimiter 列之间分隔符,默认逗号 lineterminator 换行符,默认\r\n quotechar 特殊字符处理方式,默认使用加双引号 quoting 写文件,控制quotechar行为 quoting参数 说明 csv.QUOTE_NONNUMERIC 非数字加引号 csv.QUOTE_ALL 所有字符加引号 csv.QUOTE_MINIMAL 特殊字段加引号 csv.QUOTE_NONE 都不加引号 问题:上一个练习写入文件多一行,如何处理? 指定lineterminator为\n试试#导入模块 import csv fpath = r'C:\Users\hyg\Desktop\test\1.csv' f = open(fpath, 'w') #创建csv对象,分隔符指定为|,换行符指定为\n csvw = csv.writer(f,delimiter='|',lineterminator='\n') #写入一行数据 csvw.writerow([1,2,3]) #写入多行数据 csvw.writerows([[3,4,5],[7,8,9]]) #关闭文件 f.close()
结果:
1|2|3 3|4|5 7|8|9
很多同学纠结quotechar与quoting使用,我们做一个例子:
每个字段使用\进行处理, 指定:quoting=csv.QUOTE_ALL, quotechar='\'#导入模块 import csv fpath = r'C:\Users\hyg\Desktop\test\1.csv' f = open(fpath, 'w') #创建csv对象,分隔符指定为|,换行符指定为\n csvw = csv.writer(f,delimiter='|',lineterminator='\n',quoting=csv.QUOTE_ALL, quotechar='\\') #写入一行数据 csvw.writerow(['1','|',3]) #写入多行数据 csvw.writerows([[3,4,5],[7,8,9]]) #关闭文件 f.close()
结果:
\1\|\|\|\3\ \3\|\4\|\5\ \7\|\8\|\9\3.3 以字典方式写入csv
csv文件第一行一般为字段名称, csv.DictWriter可以以字典方式进行写入; 主要方法:
header 1 header 2 csv.DictWriter(f,fieldnames,restval='',...) 创建DictWriter对象,fieldnames为字段列表 csvw.writeheader() 写入字段 csvw.writerow(rowdict) 写入一行,rowdict为:{k:v,k1:v...} csvw.writerow(rowdicts) 写入多行,rowdict为:[{k:v},{k:v},...]一个例子:
#导入模块 import csv fpath = r'C:\Users\hyg\Desktop\test\1.csv' f = open(fpath, 'w') #csv字段 fieldnames = ['name','score'] #写入数据 data = [{'name':'li','score':80},{'name':'zhao','score':90}] #创建csvw对象 csvw = csv.DictWriter(f,fieldnames=fieldnames,lineterminator='\n') #写入字段 csvw.writeheader() #写入数据 csvw.writerows(data) #关闭文件 f.close()
结果:
name,score li,80 zhao,90
以上就是csv写入主要操作
4 csv文件读取
csv读取两个方式:
直接读取行:csv. DictReader (iterable [, dialect='excel'],…) 字典方式读取:csv. DictReader (iterable [, dialect='excel'],…) 字段方式读取,将第一行认为字段 csv文件读取方式:for或者next函数具体操作:
#导入模块 import csv fpath = r'C:\Users\hyg\Desktop\test\1.csv' f = open(fpath, 'r') #创建csv读对象,可以指定分隔符等参数 csvr = csv.DictReader(f) #使用next函数读取一行,格式为字典 print(next(csvr)) #使用for循环读取剩余文件内容 for row in csvr: print(row) f.close()
结果:
OrderedDict([('name', 'li'), ('score', '80')]) OrderedDict([('name', 'zhao'), ('score', '90')])
总结:
csv写入方式:字典或者逐行写入 csv第一行一般为字段 csv读取使用for遍历 csv文件读写需要特殊设置,例如:换行符,分隔符,写入与读取要设置一致。查看更多关于21天学习python编程_csv文件操作的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did170234