首页 > 解决方案 > 为什么 Python 从 outputWriter 中给出 3 条不同的行而不是覆盖这些行?

问题描述

我正在学习如何使用 Python 将信息导入 .csv 文件。我有以下代码:

import csv

outputFile = open('output.csv','w',newline = '')
outputWriter = csv.writer(outputFile)
outputWriter.writerow(['spam','eggs','bacon','ham'])
outputWriter.writerow(['Hello World!','eggs','bacon','ham'])
outputWriter.writerow([1,2,3.141592,4])
outputFile.close()

我的 csv 文件如下所示:

在此处输入图像描述

为什么它输出 3 个单独的行而不是每次都覆盖第一行?如果我愿意,我将如何覆盖它?

感谢您从初学者那里获得洞察力。

标签: pythoncsvautomation

解决方案


在写入每一行之前,您可以使用seek()回到文件的开头。

import csv

outputFile = open('output.csv','w',newline = '')
outputWriter = csv.writer(outputFile)
outputWriter.writerow(['spam','eggs','bacon','ham'])
outputFile.seek(0)
outputWriter.writerow(['Hello World!','eggs','bacon','ham'])
outputFile.seek(0)
outputWriter.writerow([1,2,3.141592,4])
outputFile.truncate() # clear out any remnants of previous lines.
outputFile.close()

推荐阅读