Python 写入 XML 而不是覆盖输入

Python writing to XML and not over writing input

我正在尝试创建一个程序,允许我获取人们的信息,然后将其写入 xml 文档,保存,然后一旦程序再次 运行,它会从我离开的地方开始。我现在得到的只是一遍又一遍地覆盖同一行。它显示

<person>
     <name>Users Name</name>
</person>

就是这样。我需要它来做

<person>
     <name>User 1</name>
</person>

<person>
     <name>User 2</name>
</person>

等等……我还在写代码,但是如果我不能写代码,写代码就没有意义了。我试过 open('person.xml','(w,r,a') 但仍然没有。我的代码是

您需要仅使用 a 添加到文件而不是覆盖:

with open("your.xml", "a") as f:
    tree.write(f)

w 截断您的文件数据,因此基本上您在写入之前清空文件,因此您只能看到一个条目,.

当您想向其中写入内容时,应在 append mode 中打开您的文件,以免现有内容被替换。
您应该更改这行代码:

tree.write(open('person.xml', 'w'))

这个(注意 a 而不是 w):

tree.write(open('person.xml', 'a'))

r:以读取模式打开文件
w: 以write模式打开文件
a: 在 append 模式下打开文件