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 に答える