Python写入XML而不是写入输入

时间:2016-05-05 23:24:08

标签: python xml elementtree

我正在尝试创建一个程序,允许我接收人员信息,然后将其写入xml文档,保存,然后一旦程序再次运行,它将从我离开的地方继续。我现在所得到的就是我一遍又一遍地覆盖同一条线。它显示

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

就是这样。我需要它做

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

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

所以等等......我仍然在研究代码,但是如果我不能写代码那就没有意义。我试过打开(&#39; person.xml&#39;(w,r,a&#39;)但仍然没有。我的代码是 My Code

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

当您想要写一些内容时,应该在append mode中打开您的文件,以便不会替换现有内容。
你应该改变这行代码:

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

这一个(通知a而不是w):

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

r:以读取模式打开文件
w:以写入模式打开文件
a:以追加模式

打开文件