我使用DictWWriter将数据写入csv文件。该文件在我的数据行之间包含空行。现在的数据被放到行1,3,5,7,9,我想把它们分成1,2,3,4,5行,中间没有空行。
import csv
with open('example4.csv', 'w') as csvfile:
fieldnames = ['first_name', 'last_name', 'Grade']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'Grade': 'B', 'first_name': 'Alex', 'last_name': 'Brian'})
writer.writerow({'Grade': 'A', 'first_name': 'Rachael',
'last_name': 'Rodriguez'})
writer.writerow({'Grade': 'B', 'first_name': 'Jane', 'last_name': 'Oscar'})
writer.writerow({'Grade': 'B', 'first_name': 'Jane', 'last_name': 'Loive'})
答案 0 :(得分:0)
Patrick Haugh的评论已经为您提供了解决方案。您可以通过查看文档来自己找到答案。
csv.writer(csvfile, dialect='excel', **fmtparams)
返回负责将用户数据转换为的编写器对象 给定的类文件对象上的分隔字符串。 csvfile可以是任何 使用write()方法的对象。 如果csvfile是文件对象,它应该 使用newline=''
[1] 打开。
并且
<强>脚注强>
[1] (1,2)如果未指定
newline=''
,则嵌入换行符 内部引用字段将无法正确解释,并且打开 将添加使用\ r \ n linendings写入额外\ r \ n的平台。 从csv模块开始,指定newline=''
应始终是安全的 做自己的(通用)换行处理。
它还提供了一个小代码示例:
import csv with open('eggs.csv', 'w', newline='') as csvfile: spamwriter = csv.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL) spamwriter.writerow(['Spam'] * 5 + ['Baked Beans']) spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])