如何在现有 csv 文件中写入新行而不将其附加到最后一行?
Posted
技术标签:
【中文标题】如何在现有 csv 文件中写入新行而不将其附加到最后一行?【英文标题】:How to write a new row in an existing csv file without appending it in the last line? 【发布时间】:2019-10-17 15:34:46 【问题描述】:我想在 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”,输出如下图所示。
但我希望得到类似下面的结果。
【问题讨论】:
为什么不能在行前写一个换行符? @cricket_007 抱歉。我想按顺序添加行。 append new row to old csv file python的可能重复 【参考方案1】:您所做的是正确的,但您假设文件已经以换行符结尾
您需要在写完每一行之前和/或之后放置file.write("\n")
【讨论】:
请注意,如果您的文件已经以换行符结尾,那么您不应该再写一个。否则,你会有空行......在这种情况下,使用 CSV 作为“数据库替换”不是一个好主意【参考方案2】:更简单的版本是:
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 以换行符结尾)输出将有额外的空间:
【讨论】:
我查过了。它工作正常,并没有增加额外的空间。 注意前面的“之前”图像有 3 行,而后面的“之前”文本有 4 行。如果您的 csv 以换行符结束,它将添加空格以上是关于如何在现有 csv 文件中写入新行而不将其附加到最后一行?的主要内容,如果未能解决你的问题,请参考以下文章