博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
csv.writer写入文件有多余的空行
阅读量:5812 次
发布时间:2019-06-18

本文共 600 字,大约阅读时间需要 2 分钟。

在用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:

转载地址:http://alvbx.baihongyu.com/

你可能感兴趣的文章
kali linux 更新问题
查看>>
HDU1576 A/B【扩展欧几里得算法】
查看>>
廖雪峰javascript教程学习记录
查看>>
WebApi系列~目录
查看>>
Java访问文件夹中文件的递归遍历代码Demo
查看>>
项目笔记:测试类的编写
查看>>
通过容器编排和服务网格来改进Java微服务的可测性
查看>>
re:Invent解读:没想到你是这样的AWS
查看>>
PyTips 0x02 - Python 中的函数式编程
查看>>
阿里云安全肖力:安全基础建设是企业数字化转型的基石 ...
查看>>
使用《Deep Image Prior》来做图像复原
查看>>
如何用纯 CSS 为母亲节创作一颗像素画风格的爱心
查看>>
Linux基础命令---rmdir
查看>>
iOS sqlite3(数据库)
查看>>
粤出"飞龙",打造新制造广东样本
查看>>
编玩边学获数千万元A轮融资,投资方为君联资本
查看>>
蓝图(Blueprint)详解
查看>>
Spark之SQL解析(源码阅读十)
查看>>
Android图片添加水印图片并把图片保存到文件存储
查看>>
比特币系统采用的公钥密码学方案和ECDSA签名算法介绍——第二部分:代码实现(C语言)...
查看>>