Python 写入 XML 而不是重写输入

问题描述 投票:0回答:3

我正在尝试创建一个程序,该程序允许我获取人员信息,然后将其写入 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') 但仍然没有任何结果。我的代码是 My Code

python xml elementtree
3个回答
2
投票

当您想向文件写入内容时,应在

append mode
中打开您的文件,以免现有内容被替换。
您应该更改这行代码:

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

用这个(注意

a
而不是
w
):

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

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


2
投票

您需要仅使用

a
附加到文件而不是覆盖:

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

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


0
投票

这对我有用:

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

我必须写“ab”而不是“a”,并添加 b 以表示二进制模式。
参考:https://stackoverflow.com/a/5513856/3182598

© www.soinside.com 2019 - 2024. All rights reserved.