Python中通过csv的writerow输出的内容有多余的空行

2025-03-23 10:01:47
推荐回答(4个)
回答1:

with open('ttt.csv','w') as fh:
    writer = csv.writer(fh,lineterminator='\n')
    #一次写入一行数据
    for item in data:
        writer.writerow(item)
 
    #一次写入多行数据
    writer.writerows(data)

加一个linwterminator='\n'参数

回答2:

有可能是csv方言(dialect)的问题吧

csv方言参数中有一个 lineterminator,他的作用是定义csv结束一行的符号, 默认值是 '\r\n',如果有需要,可以尝试修改

csv.register_dialect(lineterminator='\n',)

如果还是不行的话,有可能是你writerow的行前面多了换行符。

回答3:

Python中的csv的writer,打开文件的时候,要小心,
要通过binary模式去打开,即带b的,比如wb,ab+等
而不能通过文本模式,即不带b的方式,w,w+,a+等,否则,会导致使用writerow写内容到csv中时,产生对于的CR,导致多余的空行。

回答4:

打开文件时,加一下newline=''即可
即:

open('ttt.csv','w', newline='')