Your opened file should be opened with b
(binary) flag:
import xml.etree.ElementTree as etree
foo = etree.Element("root")
etree.SubElement(foo, "extra", { "id": "50" })
e = etree.ElementTree(foo)
with open('test.xml', 'wb') as f:
e.write(f)
or just pass a filename/path to write()
:
e.write('test.xml')