繁体   English   中英

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

[英]How to write a new row in an existing csv file without appending it in the last line?

我想向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以换行符结尾),输出将有额外的空间:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM