Python удаляет кодировку в декларации xml при записи в файл - PullRequest
0 голосов
/ 04 июля 2019

У меня есть этот код:

    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» удаляется во втором отпечатке (и, конечно же, также в файле)?

...