Python在重新打开后编辑.csv

Python在重新打开后编辑.csv,python,csv,Python,Csv,我想创建一个表单,您可以在其中填写输入,并将数据保存在.csv文件中。但是,如果我关闭脚本并再次打开它,以添加更多条目,那么它将删除.csv文件中的旧条目。我怎样才能添加新信息,而不删除旧信息。如果不可能,我如何创建一个随机文件名,如:mydata_random.csv 剧本: import sys try: d = open("mydata.csv" , "w") except: print("Couldn't open the file") sys.exit(0)

我想创建一个表单,您可以在其中填写输入,并将数据保存在.csv文件中。但是,如果我关闭脚本并再次打开它,以添加更多条目,那么它将删除.csv文件中的旧条目。我怎样才能添加新信息,而不删除旧信息。如果不可能,我如何创建一个随机文件名,如:mydata_random.csv

剧本:

import sys

try:
    d = open("mydata.csv" , "w")
except:
    print("Couldn't open the file")
    sys.exit(0)

li = [1, "John Doe", "xxx"]
d.write(str(li[0]) + ";" + li[1] + ";"
    + str(li[2]).replace(".",",") + "\n")

dli = [[2, "John Doe" , "yyy"],  [3, "John Doe", "zzz"]]
for element in dli:
    d.write(str(element[0]) + ";"
        + element[1] + ";"
        + str(element[2]).replace(".",",") + "\n")
d.close()

问题在于打开文件时使用的模式

d=open(“mydata.csv”,“w”)
使用模式
w
,该模式将在每次保存时覆盖文件

d=open(“mydata.csv”,“a”)
使用模式
a
,该模式将在每次保存时附加到文件中


您可以在此处阅读有关其他打开模式的更多信息:

这里的问题是您正在以写入模式
w
打开文件。第二次甚至第一次打开它时,您需要以追加模式
a

d=open(“mydata.csv”,“w”)

所以这个代码将成为

d=open(“mydata.csv”、“wa”)

现在,您可以添加任意数量的条目


签出的答案应有助于您

在附加模式下打开文件,
a
,而不是在写入模式下,
w