为什么我在代码中进行的更改未写入已创建的新文件?

问题描述

我目前正在处理几个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 (将#修改为@)