Python学习中,当使用writerow时输出多余的空行解决方法


今天在学习用Python进行CSV文件存储

当我以csv格式写入文件的时候,文件读取的时候出现了多余的空行,代码:

1 import csv 2 
3 with open('data.csv', 'w') as csvfile: 4     writer = csv.writer(csvfile) 5     writer.writerow(['id', 'name', 'age']) 6     writer.writerow(['10001', 'Mike', '20']) 7     writer.writerow(['10002', 'Bob', '22']) 8     writer.writerow(['10003', 'Jordan', '21'])

出现空行的结果:

经过网上的资料查阅后,问题产生的原因是csv输出的效果是行末是CR,然后是一个CRLF的换行符,网上给出的解决方法是将写入格式改为binary模式。

但我运行后却报出这样的错误:TypeError: a bytes-like object is required, not 'str' ,因为我写入的是字符串数据,于是我采取了另一种解决方法:

在加一个csv.writer中加入lineterminator='\n'的参数,修改后的代码为:

1 import csv
2 
3 with open('data.csv', 'w') as csvfile:
4     writer = csv.writer(csvfile, lineterminator='\n')
5     writer.writerow(['id', 'name', 'age'])
6     writer.writerow(['10001', 'Mike', '20'])
7     writer.writerow(['10002', 'Bob', '22'])
8     writer.writerow(['10003', 'Jordan', '21'])

此时创建的csv文件没有了多余的空行:


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM