除了使用目录,文件路径,目的还是操作文件
文件中比较重要的文件是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模块即可