Python重新打开后编辑.csv

时间:2018-01-14 19:32:17

标签: 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)

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()

2 个答案:

答案 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的答案可以帮助您