我正在尝试使用以下代码写入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
文件时,我发现它在每行后面都添加了一个空行。
为什么?
答案 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()
将始终在最后添加换行符,这通常是必需的。要阻止它编写,你需要一种不同的方法,首先将数据写入字符串而不是文件,剥离换行符,然后将结果文本写入文件。