我正在尝试创建一个程序,该程序允许我获取人员信息,然后将其写入 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') 但仍然没有任何结果。我的代码是
当您想向文件写入内容时,应在
append mode
中打开您的文件,以免现有内容被替换。tree.write(open('person.xml', 'w'))
用这个(注意
a
而不是 w
):
tree.write(open('person.xml', 'a'))
r
:以读取模式打开文件w
:以write模式打开文件a
:以append模式打开文件
您需要仅使用
a
附加到文件而不是覆盖:
with open("your.xml", "a") as f:
tree.write(f)
w
截断您的文件数据,因此基本上您在写入之前清空了文件,因此您只能看到一个条目,.
这对我有用:
with open("your.xml", "ab") as f:
tree.write(f)
我必须写“ab”而不是“a”,并添加 b 以表示二进制模式。
参考:https://stackoverflow.com/a/5513856/3182598