使用xml.etree.cElementTree()将XML文件转化为CSV文件的方法
发布时间:2023-12-16 08:09:18
xml.etree.cElementTree是Python标准库中的模块,用于解析和生成XML数据。它提供了一种将XML文件转换为CSV文件的方法。
下面是使用xml.etree.cElementTree将XML文件转换为CSV文件的步骤和示例代码:
1. 导入所需的模块:
import csv import xml.etree.cElementTree as etree
2. 打开XML文件并解析:
tree = etree.parse('input.xml')
root = tree.getroot()
3. 创建CSV文件并定义相应的编码方式:
csvfile = open('output.csv', 'w', encoding='utf-8', newline='')
csvwriter = csv.writer(csvfile)
4. 写入CSV文件的表头:
headers = []
for child in root[0]:
headers.append(child.tag)
csvwriter.writerow(headers)
5. 迭代XML文件中的每个元素,并将元素的值写入CSV文件:
for element in root:
values = []
for child in element:
values.append(child.text)
csvwriter.writerow(values)
6. 关闭CSV文件:
csvfile.close()
整个代码如下所示:
import csv
import xml.etree.cElementTree as etree
tree = etree.parse('input.xml')
root = tree.getroot()
csvfile = open('output.csv', 'w', encoding='utf-8', newline='')
csvwriter = csv.writer(csvfile)
headers = []
for child in root[0]:
headers.append(child.tag)
csvwriter.writerow(headers)
for element in root:
values = []
for child in element:
values.append(child.text)
csvwriter.writerow(values)
csvfile.close()
假设XML文件内容如下:
<fruits>
<fruit>
<name>apple</name>
<color>red</color>
</fruit>
<fruit>
<name>orange</name>
<color>orange</color>
</fruit>
<fruit>
<name>banana</name>
<color>yellow</color>
</fruit>
</fruits>
运行上述代码后,将生成一个名为output.csv的CSV文件,内容如下:
name,color apple,red orange,orange banana,yellow
这就是使用xml.etree.cElementTree将XML文件转换为CSV文件的方法和示例。你可以根据自己的需求进行相应的修改和扩展。
