该ElementTree.write
方法默认为us- ascii编码,因此期望打开一个文件以写入二进制文件:
输出是字符串(str)或二进制(字节)。这由encoding参数控制。如果 encoding 为"unicode"
,则输出为字符串。否则,它是二进制的。注意,如果它是一个打开的文件对象,则可能与 文件 类型冲突。确保您不要尝试将字符串写入二进制流,反之亦然。
因此,要么打开文件以二进制模式写入:
tree.write(open('person.xml', 'wb'))
或打开该文件以文本模式写入,并"unicode"
以 编码 方式给出:
tree.write(open('person.xml', 'w'), encoding='unicode')