中文
当前位置: 国外主机测评 » 资源资讯 » 正文

Python csv.writer 解决写入 CSV 时中间多一个空行的问题

近日在修改一段代码的时候遇到一个奇怪的问题,用 csv 这个库写入数据的时候居然每次写入都会多一行空行。因为之前也这么用一直都没问题,于是搜了一下解决方法,在此记录。

问题和解决方法

一般来说 Python 写入 csv 的代码如下:

with open(birth_weight_file,'w') as f:
writer=csv.writer(f)
writer.writerow(birth_header)
writer.writerows(birth_data)
f.close()

这种写法最终的结果就是生成的 csv 文件每两行中间都有一行空白行,解决办法就是写入后面加上 newline='' 即可。

修改后代码如下:

with open(birth_weight_file,'w',newline='') as f:
writer=csv.writer(f)
writer.writerow(birth_header)
writer.writerows(birth_data)
f.close()

原因分析

Python 3 里面对 str 和 bytes 类型做了严格的区分,不像 Python 2 里面某些函数里可以混用。所以用 Python 3 来写 wirterow 时,打开文件不要用 wb 模式,只需要使用 w 模式,然后带上 newline=''

在 windows 这种使用 /r/n 的系统里,不用 newline='' 的话,会自动在行尾多添加个 /r,导致多出一个空行,即行尾为 /r/r/n

声明: 1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。 2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。 3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。 4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。 未经允许不得转载:国外主机测评 » Python csv.writer 解决写入 CSV 时中间多一个空行的问题

相关文章