【发布时间】:2021-10-08 21:03:31
【问题描述】:
我正在处理一个包含 27 个文件夹和每个文件夹内的各种 XML 文件的目录。
能够:
- 解析一个 XML 文件并写入一个 CSV 文件
- 遍历一个文件夹,读取并解析其中的所有XML文件
挑战:
- 在尝试将所有 XML 文件从根文件夹解析到其子文件夹时遇到问题
发送帮助并感谢您。代码如下:sn-ps
# working in one folder only
import csv
import xml.etree.ElementTree as ET
import os
## directory
path = "/Users.../y"
filenames = []
## Count the number of xml files of each folder
files = os.listdir(path)
print("\n")
xml_data_to_csv = open('/Users.../xml_extract.csv', 'w')
list_head = []
csvwriter = csv.writer(xml_data_to_csv)
# Read XML files in a folder
for filename in os.listdir(path):
if not filename.endswith('.xml'):
continue
fullname = os.path.join(path,filename)
print("\n", fullname)
filenames.append(fullname)
# parse elements in each XML file
for filename in filenames:
tree = ET.parse(filename)
root = tree.getroot()
extract_xml=[]
## extract child elements per xml file
print("\n")
for x in root.iter('Info'):
for element in x:
print(element.tag,element.text)
extract_xml.append(element.text)
## Write list nodes to csv
csvwriter.writerow(extract_xml)
## Close CSV file
xml_data_to_csv.close()
【问题讨论】:
标签: python parsing elementtree