解决csv.writer写入文件有多余的空行问题

yipeiwu_com6年前Python基础

在用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写入文件有多余的空行问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

学习python之编写简单乘法口诀表实现代码

实现代码一、 #!/usr/bin/python x,y=9,9 lst=[(x,y,str(y)+'X'+str(x)+'='+str(x*y)) fo...

python文件操作整理汇总

总是记不住API。昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。 得到当前工作目录,...

基于python实现蓝牙通信代码实例

这篇文章主要介绍了基于python实现蓝牙通信代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 安装和示例 linux下安装...

python3利用venv配置虚拟环境及过程中的小问题小结

python3利用venv配置虚拟环境及过程中的小问题小结

在利用python进行flask等开发过程中经常需要配置虚拟环境以方便针对不同的项目需求配置不同的生产环境。在python3.3之前,需要利用virtualenv等工具来实现python...

在pycharm中设置显示行数的方法

下面是具体的步骤,试用于pycharm2016(亲测) 1.  File-->settings-->editor-->general-->appeara...