2019/10/23 02-csv模块使用

除了使用目录,文件路径,目的还是操作文件
文件中比较重要的文件是csv文件,这个文件实际上是数据的表现形式,是一种通用格式,只不过excel可以打开,但不是excel文件

https://www.ietf.org/rfc/rfc4180.txt

csv为什么叫csv,是一个逗号分隔的值的文本格式的文件
csv不指定字符编码
行分隔符为\r\n,最后一行可以没有换行符
逗号是最原始的确认方式
每一行都称为一条记录
字段可以使用双引号括起来,也可以不使用。如果字段中出现了双引号、逗号、换行符必须使用双引号括起来。如果字段的值是双引号,使用两个双引号表示一个转义
表头可选,和字段列对齐就行

在这里插入图片描述
在这里插入图片描述
手动搞定一个试试
这个目录已经存在

在这里插入图片描述
目录存在创建就会报错
在这里插入图片描述
就需要exist_ok=True

在这里插入图片描述
用文本方式打开,可写,往里面写数据
换行要加\r\n
陕西用拼音应该是两个a shaanxi
执行一下
在这里插入图片描述
逗号分隔的值的文本文件
在这里插入图片描述在这里插入图片描述
linux写是没有问题的,但是在windows就需要把newline的参数调整下在这里插入图片描述在这里插入图片描述
这样就可以了,在这里插入图片描述在这里插入图片描述
改成rows,也是第一行第二行
一个是元组,一个列表。,构成多行
csv保存数据的时候是通用,虽然在格式不怎么好,但是用文本方式保存数据,这种是跨平台的,尤其在中间传给别人的时候,尤其是报表,用csv方案导出来,把你表格显示的数据一行行迭代出来,转成用逗号分隔,自己写都行

在这里插入图片描述

python就提供了csv模块,要可迭代对象
在这里插入图片描述
前面写好文件,后面读取出来
在这里插入图片描述
f是一个行迭代器,一行行处理
在这里插入图片描述
改成这样一样在这里插入图片描述
下面可以往里面写,wite要给一个文件对象
在这里插入图片描述
看到next说明是个迭代器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
用w的方式就被清空了,阻止你写入了在这里插入图片描述
文件打开阻止你写入了
在这里插入图片描述
成功,但是写的时候肯定就一行存在

在这里插入图片描述在这里插入图片描述
想写两行
在这里插入图片描述
写出来又是这样在这里插入图片描述
windows下有这个问题,linux没有
在这里插入图片描述在这里插入图片描述
要求每一行这里都是可迭代对象
在这里插入图片描述
这样试试
在这里插入图片描述
writerow是把每一行都迭代然后用逗号分割
最后的元组,两元素,带逗号,只要一str,还得有括号逗号,用引号引起来

在这里插入图片描述在这里插入图片描述
csv模块可以进行csv的文件读取和写入的
在这里插入图片描述
要求是个文件对象
excel类似一个方言

在这里插入图片描述
如果碰到数据中双引号,而quotechar也是双引号,True则使用2个双引号表示,False表示使用转义字符将作为双引号的前缀,(如果quotechar =true用2个双引号表示,false就代表escapechar要定义自己的转义字符,默认none,如果要指定就用escapechar指定 =’@‘或者其他的)
escapechar一个转义字符,默认为None
writer=csv.writer(f,doublequote=False,escapechar=’@’)遇到双引号,则必须提供转义字符
quoting指定双引号的规则

在这里插入图片描述
这两个连续的,一个双引号就代表一个数据
在这里插入图片描述
、这两个是做边界界定的
在这里插入图片描述
可以通过后面的传参解决在这里插入图片描述
有歧义的地方打双引号,没有就没有
在这里插入图片描述
要是用了非数字的字段就标识起来了
在这里插入图片描述
所有字段不用双引号来标注
在这里插入图片描述
建议还是使用却省的方言

这是excel方言

在这里插入图片描述
还有excel_tab和unix_dialect方言
quote _all所有都打双引号

在这里插入图片描述
大部分用read读数据,write写数据,写数据要可迭代对象在这里插入图片描述在这里插入图片描述
这个文件在中间数据的时候非常有用,尤其是在报表导出的时候经常使用的格式,我们写的时候直接调用csv模块即可

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值