将.xml文件直接转换为.txt文件...无需解析

时间:2018-11-16 14:47:10

标签: python xml

我有一些.xml文件,需要以编程方式为客户转换为.txt文件。无需解析xml树以返回文本值。我实际上只是需要将文件扩展名从.xml更改为.txt。转换后的文件将包含所有xml树,包括标签等。然后,客户希望稍后对其进行解析。

到目前为止,我有:

import xml.etree.ElementTree as ET
tree = ET.parse('myfile.xml')
root = tree.getroot()
with open('myfile.txt', 'w') as f:
    f.write(root)
f.close()

哪个返回错误:

Traceback (most recent call last):
  File "C:/Users/myuser/Documents/Python 3 Scripts/test.py", line 5, in <module>
    f.write(root)
TypeError: write() argument must be str, not xml.etree.ElementTree.Element

解决所需的修补程序是什么?

1 个答案:

答案 0 :(得分:1)

只需将数据读取为字符串(或字节(如果需要))并将其写出为其他扩展名...

with open('myfile.xml', 'r') as file_in, open('myfile.txt', 'w') as file_out:
    data = file_in.read()
    file_out.write(data)

或者,如果您真的只想更改当前文件的扩展名:

import os
os.rename('myfile.xml','myfile.txt')