时间:2021-05-22
在用csv.writer写入文件的时候发现中间有多余的空行。
最早打开方式只是‘w',会出现多余的空行,网上建议使用binary形式‘wb'打开可以解决问题:
with open('egg2.csv', 'wb') as cf:不过只能在python2下运行,python3报错:
TypeError: a bytes-like object is required, not 'str'有人建议用encode(‘utf-8')编码转变格式,但是觉得还是比较繁琐,因为list也不支持直接的编码。
再找了一圈,找到的最佳解释:
python2.x中写入CSV时,CSV文件的创建必须加上'b'参数,即csv.writer(open('test.csv','wb')),不然会出现隔行的现象。网上搜到的解释是:python正常写入文件的时候,每行的结束默认添加'n',即0x0D,而writerow命令的结束会再增加一个0x0D0A,因此对于windows系统来说,就是两行,而采用' b'参数,用二进制进行文件写入,系统默认是不添加0x0D的。
而python3.x中换成采用newline=''这一参数来达到这一目的。
这里python2和3的问题和解决方法都给出了。
最后
python3下的正确代码:
with open('egg2.csv', 'w', newline='') as cf:以上这篇解决csv.writer写入文件有多余的空行问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Python读取与写入CSV文件需要导入Python自带的CSV模块,然后通过CSV模块中的函数csv.reader()与csv.writer()来进行CSV文
如下所示:writer=csv.writer(open('xx.csv','w'))data=[('zzz',20,123456),('jojo',10,789
1、CSV(1)写csv文件importcsvdefwritecsv(path,data):withopen(path,"w")asf:writer=csv.w
需求:1.大量csv文件,以数字命名,如1.csv、2.cvs等;2.逐个打开,对csv文件中的某一列进行格式修改;3.将更改后的内容写入新的csv文件。解决思
写入txt文件deftext_save(filename,data):#filename为写入CSV文件的路径,data为要写入数据列表.file=open(f