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

Python 如何在现有csv文件中写入新行而不将其追加到最后一行?,python,python-3.x,csv,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() 我希望新值出现在新行中。

我想在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”,输出如下图所示

但我期待下面这样的事情


您所做的是正确的,但您假设文件已以新行字符结尾


您需要在写入每一行之前和/或之后放置
file.write(“\n”)
,更简单的版本是:

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未在新行结束):

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


为什么你不能在这一排之前写一行新词?@cricket\u 007对不起。我想按顺序添加行。如果文件已以换行结束,则不应再编写另一行,这可能是重复的。否则,您将有空行。。。在这种情况下,使用CSV作为“数据库替换”不是一个好主意。它工作正常,并且没有增加额外的空间。请注意,前面的“Before”图像有3行,而后面的“Before”文本有4行。如果您的csv以换行符结束,它将添加空间