首页 > 解决方案 > 将 .xml 文件直接转换为 .txt 文件...无需解析

问题描述

我有一些 .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

需要解决什么问题?

标签: pythonxml

解决方案


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

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')

推荐阅读