使用writerow函数添加到csv文件的空白行

时间:2018-04-18 10:52:30

标签: python csv

我正在尝试使用以下代码写入CSV文件:

with open('tri.csv', 'a') as csvfile2:
    writer0 = csv.writer(csvfile2, delimiter=';', encoding='utf-8')
    writer0.writerow([id_emp, name_emp, old_date, "", "", "", old_diff])

但是当我打开tri.csv文件时,我发现它在每行后面都添加了一个空行。

为什么?

1 个答案:

答案 0 :(得分:0)

如果您使用的是Python 2.x,请在'ab'中使用open()。如果您使用的是Python 3.x,请添加newline=''作为另一个参数。建议在csv.writer()文档中使用。例如:

Python 2.x

with open('tri.csv', 'ab') as csvfile2:
    writer0 = csv.writer(csvfile2, delimiter=';', encoding='utf-8')
    writer0.writerow([id_emp, name_emp, old_date, "", "", "", old_diff])

Python 3.x

with open('tri.csv', 'a', newline='', encoding='utf-8') as csvfile2:
    writer0 = csv.writer(csvfile2, delimiter=';')
    writer0.writerow([id_emp, name_emp, old_date, "", "", "", old_diff])

注意,通过进行此更改,它将删除行之间的其他空行。 writerow()将始终在最后添加换行符,这通常是必需的。要阻止它编写,你需要一种不同的方法,首先将数据写入字符串而不是文件,剥离换行符,然后将结果文本写入文件。

另请参阅:Python CSV insert final newline - how can I avoid it?