2013-02-25 5 views
0

я пытался сделать этопитон XML писатель

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 или я что-то пропускаю?

UPDATE: Если я закрыть программу в вопросе после выполнения сценария, файл XML создается нормально

UPDATE: Простой FileWriter, как это работает отлично

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

ответ

1

Также можно пройти файловый объект к конструктору ElementTree. Возможно, попробуйте создать файл с этим и затем закрыть файл в конце?

+0

, который сделал трюк, я не знаю почему, но я рад, что он работает. Большое спасибо! – Yui

Смежные вопросы