0
我有以下代碼:XML屬性的修改沒有被保存
def incrCount(root):
root.attrib['count'] = int(root.attrib['count']) + 1
# root.set('count', int(root.attrib['count']) + 1)
root = getXMLRoot('test.xml')
incrCount(root)
print root.attrib['count']
當我運行它,正確的值將被打印,但這種改變是從來沒有在執行結束的文件中可見。我已經嘗試了上述兩種方法都沒有成功。任何人都可以指出我犯了什麼錯誤嗎?
的變化只在內存製造。如果你想讓他們進入一個文件,你需要自己寫。使用[tostring](https://docs.python.org/3.5/library/xml.etree.elementtree.html#xml.etree.ElementTree.tostring)並將結果寫入以「wb''模式打開的文件。 – bbayles
@bbayles我想我可以直接修改文件。但我希望在ET模塊中找到一些東西。好吧。在那種情況下,設置的方法何時有用? – mjr
該文件作爲文本流從磁盤讀取,然後解析爲內存中的節點。保存(明確)時,會發生相反的情況。考慮在整理其餘文本以在大文件中添加或修改屬性的開銷。 – Mike