gpt4 book ai didi

python - 替换 XML 文件中的 python 字符串

转载 作者:行者123 更新时间:2023-12-02 18:36:06 24 4
gpt4 key购买 nike

我想用“bike”替换xml文件中的所有字符串(除了图像文件名,只更改名称标签中的字符串)“bicycle”。我想通过使用 .readlines() 来处理 re.sub,但这不起作用。谁能告诉我如何以最有效的方式做到这一点(一个好的解释会有很大帮助)?

<annotation>
<folder>images</folder>
<filename>bicycle (10).jpg</filename>
<path>C:\Users\Merida\Desktop\Bicycle\images\bicycle (10).jpg</path>
<source>
<database>Unknown</database>
</source>
<size>
<width>960</width>
<height>636</height>
<depth>3</depth>
</size>
<segmented>0</segmented>
<object>
<name>bicycle</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>68</xmin>
<ymin>24</ymin>
<xmax>755</xmax>
<ymax>632</ymax>
</bndbox>
</object>
<object>
<name>bicycle</name>
<pose>Unspecified</pose>
<truncated>1</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>1</xmin>
<ymin>28</ymin>
<xmax>189</xmax>
<ymax>435</ymax>
</bndbox>
</object>
</annotation>

最佳答案

如果您想替换所有出现的“bicycle”,可以使用“replace”轻松完成:

input_file = "example.xml"
output_file = "output.xml"
with open(input_file) as f:
xml_content = f.readlines()

with open(output_file, 'w+') as f:
for line in xml_content:
f.write(line.replace('bicycle', 'bike'))

但是,如果您想保持 xml 结构完整(以防元素或属性名称为自行车),您可能需要查看 elementTreelxml .

编辑:编辑问题后,这里有一个更清晰的 elementTree 解决方案:

import xml.etree.ElementTree as ET
input_file = "example.xml"
output_file = "output.xml"

tree = ET.parse(input_file)
root = tree.getroot()
name_elts = root.findall(".//name") # we find all 'name' elements

for elt in name_elts:
elt.text = elt.text.replace("bicycle", "bike")

tree.write(output_file)

关于python - 替换 XML 文件中的 python 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68763615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com