Python学习

python写入csv有多余空行解决方案

利用python把数组中的内容写到csv中,发现每行中间都有一个多余的空行。而输出为txt格式就不会。

网上有解决方案数说是将打开方式选择为二进制方式。如将‘a’改为‘ab’,将‘w’改为’wb’

但是我出现编译错误:
TypeError: a bytes-like object is required, not ‘str’

最终的解决方案是在open()函数中加入参数lineterminator=’\n’
这样写入就OK啦 ╮(╯▽╰)╭

3 comments

这是换行符的问题。Windows 换行是 ‘\r\n’(回车,换行),而Unix是 ‘\n’。

csv模块默认的换行符是 ‘\r\n’ (https://docs.python.org/3.2/library/csv.html#csv.Dialect.lineterminator),所以我猜你用的是Unix系统,会出现两次换行,第二次换行就是一个空行。

用lineterminator=’\n’可以改默认的换行,但是我猜如果你导出的文件在Windows系统打开会不能换行。

比较好的解决方法是lineterminator=os.linesep(https://docs.python.org/release/3.2/library/os.html#os.linesep )可以根据系统自动选择换行符。

Leave a Comment

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.