如何解决为什么我在代码中进行的更改未写入已创建的新文件?
我目前正在处理几个XML文件,这些文件要求更改元素mods:namePart的文本。我创建了一个脚本,该脚本应该遍历我在特定目录中指定的所有XML文件并进行预期的更改。但是,当我运行脚本时,所做的更改不会反映在新文件中。它按预期执行,我什至在控制台中得到“ namepart changes”的输出,但我要替换的文本保持不变。请帮忙!! 我对编码非常陌生,因此欢迎任何提示/评论。这是我正在使用的代码:
list_of_files = glob.glob('/Users/#####/Documents/test_xml_files/*.xml')
for file in list_of_files: xmlObject = ET.parse(file)
root = xmlObject.getroot()
namespaces = {'mods':'http://www.loc.gov/mods/v3'}
for namePart in root.iterfind('mods:name/mods:namePart',namespaces):
if namePart.text == 'Tsukioka,Kōgyo,1869-1927':
new_namePart = namePart.text.replace('Tsukioka,1869-1927','Tsukioka Kōgyo,1)
namePart.text == new_namePart
print('namepart changed')
else:
continue
nf = open(os.path.join('/Users/####/Documents/updated_test_directory',os.path.basename(file)),'wb')
xmlString = ET.tostring(root,encoding="utf-8",method="xml",xml_declaration=None)
nf.write(xmlString)
nf.close()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。