我尝试使用Python重写csv文件中的特定单元格。
但是,每当我尝试修改csv文件的某个方面时,csv文件最终都会被清空(文件内容变为空白)。
最小代码示例:
import csv
ReadFile = open("./Resources/File.csv", "rt", encoding = "utf-8-sig")
Reader = csv.reader(ReadFile)
WriteFile = open("./Resources/File.csv", "wt", encoding = "utf-8-sig")
Writer = csv.writer(WriteFile)
for row in Reader:
row[3] = 4
Writer.writerow(row)
ReadFile.close()
WriteFile.close()
' FILE.CSV'看起来像这样:
1,2,3,FOUR,5
1,2,3,FOUR,5
1,2,3,FOUR,5
1,2,3,FOUR,5
1,2,3,FOUR,5
在这个例子中,我试图改变四个'到' 4'。
运行此代码后,csv文件将变为空。
到目前为止,我唯一能找到的与此相关的唯一问题是this one,它似乎没有处理重写csv文件中的特定单元格,而是处理新的行到csv文件。
我非常感谢任何阅读此内容的人提供的任何帮助。
答案 0 :(得分:2)
当您使用w
选项打开编写器时,它将删除内容并重新开始写入文件。因此,在您开始阅读时,该文件为空。
尝试写入另一个文件(如FileTemp.csv),并在程序结束时将FileTemp.csv重命名为File.csv。
答案 1 :(得分:2)
The following should work:
import csv
with open("./Resources/File.csv", "rt", encoding = "utf-8-sig") as ReadFile:
lines = list(csv.reader(ReadFile))
with open("./Resources/File.csv", "wt", encoding = "utf-8-sig") as WriteFile:
Writer = csv.writer(WriteFile)
for line in lines:
line[3] = 4
Writer.writerow(line)