У меня есть этот код:
from xml.etree import ElementTree as et
from xml.dom import minidom
from io import BytesIO
[...]
tree = et.ElementTree(root)
f = BytesIO()
tree.write(f, encoding='utf-8', xml_declaration=True)
print(f.getvalue())
xmlstr = minidom.parseString(f.getvalue()).toprettyxml(indent=" ")
with open("output/Task_Score_Value." + str(sheet.cell(row=line, column=1).value) + ".md", "w+") as file:
print(xmlstr)
file.write(xmlstr)
Я получил следующий вывод (я печатаю только первые строки)
b'<?xml version=\'1.0\' encoding=\'utf-8\'?>\n<CustomMetadata xmlns="http://soap.[...]
<?xml version="1.0" ?>
<CustomMetadata xmlns="http://soap.[...]
[...]
Почему «encoding = UTF-8» удаляется во втором отпечатке (и, конечно же, также в файле)?