我想创建一个表单,您可以在其中填写输入,它会将数据保存在.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()
答案 0 :(得分:1)
问题是打开文件时使用的模式。
d = open("mydata.csv" , "w")
使用模式w
,它将覆盖每次保存时的文件。
d = open("mydata.csv" , "a")
使用模式a
,该模式会在每次保存时附加到文件中。
您可以在此处详细了解其他开放模式:https://docs.python.org/2/library/functions.html#open
答案 1 :(得分:0)
此处的问题是您以写入模式w
打开文件。第二次或甚至第一次打开它时,您需要以追加模式a
d = open("mydata.csv" , "w")
所以这段代码将成为
d = open("mydata.csv" , "wa")
现在您可以根据需要添加任意数量的条目。
查看this question的答案可以帮助您