0

我试着这样做

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 执行它,它的工作原理完全可以,但我需要从另一个程序的脚本接口执行它。脚本接口在 .NET 2.0.50727.5466 上使用 IronPython 2.6.10920.0 它运行没有错误,但它创建的文件始终为空。如果我尝试删除所述文件,它说它仍然在程序中打开。是否有释放 xml 文件的命令或者我忽略了什么?

更新:如果我在运行脚本后关闭有问题的程序,则正常创建 xml 文件

更新:像这样的简单文件编写器可以完美运行

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

1 回答 1

1

也可以将文件对象传递给 ElementTree 构造函数。也许,尝试用它创建文件,然后在最后关闭文件?

于 2013-02-25T07:59:08.263 回答