Python元素树写入新文件

时间:2016-06-08 21:24:42

标签: python xml tree element writing

嗨,所以我一直在努力解决这个问题,并且无法弄清楚为什么我会遇到错误。试图将一些基本的XML导出到一个新文件中,不断给我一个TypeError。以下是代码的一小部分示例

from xml.etree.ElementTree import ElementTree
from xml.etree.ElementTree import Element
from xml.etree.ElementTree import SubElement
import xml.etree.ElementTree as ET


root = Element('QuoteWerksXML')
tree = ElementTree(root)
ver = SubElement(root, "AppVersionMajor")
ver.text = '5.1'

tree.write(open('person.xml', 'w'))

1 个答案:

答案 0 :(得分:15)

ElementTree.write方法默认使用us-ascii编码,因此需要打开一个用于编写二进制文件的文件:

  

输出是字符串(str)或二进制(字节)。这由encoding参数控制。如果 encoding "unicode",则输出为字符串;否则,它是二进制的。请注意,如果它是一个打开的文件对象,这可能与文件的类型冲突;确保你不要尝试将字符串写入二进制流,反之亦然。

因此要么打开文件以便以二进制模式写入:

tree.write(open('person.xml', 'wb'))

或打开文件以便以文字模式书写,并将"unicode"作为编码

tree.write(open('person.xml', 'w'), encoding='unicode')