Python XML 写入器

0 投票
1 回答
855 浏览
提问于 2025-04-17 17:01

我试着这样做

import xml.etree.ElementTree as ET

root = ET.Element('xml')
projects = ["a", "e", "u"]
for i in projects:
    project = ET.SubElement(root,'project')
    project.set('name', i)
    designs = ["a", "e", "u"]
    for u in designs:
        design = ET.SubElement(project,'design')
        design.set('name', u)
        vars = ["a", "e", "u"]
        for z in vars:
            param = ET.SubElement(design,'param')
            param.set('name', z)
            value = ET.SubElement(param,'value')
            value.text = "var"
tree = ET.ElementTree(root)
tree.write('projects.xml')

如果我用 ipy.exe 来执行,它的表现完全正常,但我需要从另一个程序的脚本接口来执行它。这个脚本接口使用的是 IronPython 2.6.10920.0,运行在 .NET 2.0.50727.5466 上。它运行没有错误,但创建的文件总是空的。如果我试着删除这个文件,系统会提示说它仍然在程序中打开。有没有什么命令可以释放这个 xml 文件,还是我漏掉了什么?

更新:如果我在运行脚本后关闭相关程序,xml 文件就能正常创建了

更新:像这样的简单文件写入器工作得很好

f = open("pythontest.txt", "w")
projects = ["a", "e", "u"]
for i in projects:
    f.write("Name: " + i)
f.close()

1 个回答

1

你也可以把一个文件对象传给ElementTree的构造函数。也许可以试试先用这个方法创建文件,然后最后再关闭这个文件?

撰写回答