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'参数
有可能是csv方言(dialect)的问题吧
csv方言参数中有一个 lineterminator,他的作用是定义csv结束一行的符号, 默认值是 '\r\n',如果有需要,可以尝试修改
csv.register_dialect(lineterminator='\n',)
如果还是不行的话,有可能是你writerow的行前面多了换行符。
Python中的csv的writer,打开文件的时候,要小心,
要通过binary模式去打开,即带b的,比如wb,ab+等
而不能通过文本模式,即不带b的方式,w,w+,a+等,否则,会导致使用writerow写内容到csv中时,产生对于的CR,导致多余的空行。
打开文件时,加一下newline=''即可
即:
open('ttt.csv','w', newline='')