XML转表格、XML文件批量合并成Excel表格(Python)
import os
import xml.etree.ElementTree as ET
import pandas as pd
folder_path = "C:/xxx/Desktop/2022" # 替换为你的文件夹路径
# 获取文件夹中的所有文件
file_list = os.listdir(folder_path)
# 创建一个空的DataFrame来存储所有XML文件的数据
all_data = pd.DataFrame()
# 循环处理每个文件
for file_name in file_list:
if file_name.endswith(".xml"):
file_path = os.path.join(folder_path, file_name)
# 解析XML文件
tree = ET.parse(file_path)
root = tree.getroot()
# 提取XML数据并转换为DataFrame
xml_data = {}
for element in root.iter():
xml_data[element.tag] = element.text
df = pd.DataFrame(xml_data, index=[0])
# 将DataFrame添加到总的数据集中
all_data = pd.concat([all_data, df], ignore_index=True)
# 将数据保存为Excel文件
excel_file_path = "C:/xxx/Desktop/2022/file.xlsx" # 替换为你的输出文件路径,如:/path/to/output/file.xlsx
all_data.to_excel(excel_file_path, index=False)
print("转换完成!Excel文件已保存。")
运行前请确保对应的库装好
下面是一个相同功能但有进度条的代码,用到tqdm库
import os
import xml.etree.ElementTree as ET
import pandas as pd
from tqdm import tqdm
folder_path = "C:/xxx/2011" # 替换为你的文件夹路径
# 获取文件夹中的所有文件
file_list = os.listdir(folder_path)
# 创建一个空的DataFrame来存储所有XML文件的数据
all_data = pd.DataFrame()
# 使用tqdm显示进度条
for file_name in tqdm(file_list, desc="Processing files"):
if file_name.endswith(".xml"):
file_path = os.path.join(folder_path, file_name)
# 解析XML文件
tree = ET.parse(file_path)
root = tree.getroot()
# 提取XML数据并转换为DataFrame
xml_data = {}
for element in root.iter():
xml_data[element.tag] = element.text
df = pd.DataFrame(xml_data, index=[0])
# 将DataFrame添加到总的数据集中
all_data = pd.concat([all_data, df], ignore_index=True)
# 将数据保存为Excel文件
excel_file_path = "C:/xxx/2011.xlsx" # 替换为你的输出文件路径,如:/path/to/output/file.xlsx
all_data.to_excel(excel_file_path, index=False)
print("转换完成!Excel文件已保存。")

浙公网安备 33010602011771号