如何在现有的csv文件中写入新行而不将其添加到最后一行?

时间:2019-06-01 06:16:56

标签: python python-3.x csv

我想在python中的现有.csv文件中添加新行。

我通过在Windows的spyder IDE中的csv文件中添加一行来尝试以下操作。

def write_to_file():

file = open('E:/Python/Sample//Dataset.csv','a')   
file.write(",".join([str(newID),request.form['username'],request.form['age']]))

file.close()

我希望新值出现在新行中。但是它将新值附加在最后一行。

如果我添加名称“ Erick”和年龄“ 60”,则输出如下图所示。enter image description here

但是我希望像下面这样。

enter image description here

2 个答案:

答案 0 :(得分:2)

您的操作是正确的,但是您假设文件已经以换行符结束

您需要在写完每一行之前和/或之后放置file.write("\n")

答案 1 :(得分:0)

一个更简单的版本是:

import csv

row =['Eric', '60']

with open('people.csv','a') as csvFile:   #a to append to existing csv file
    writer = csv.writer(csvFile)
    csvFile.write("\n")    #write your data to new line
    writer.writerow(row)
csvFile.close()

输出(假设您的csv不以新行结尾):

enter image description here

请注意(如果您的csv以换行符结尾),输出将有额外的空格:

enter image description here