You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python将多个CSV文件合并转换为单个XML文件

多CSV合并转单个XML的实现方案

核心思路

把读取单个CSV的逻辑封装成可复用的函数,遍历所有需要处理的CSV文件,将所有数据合并到同一个列表,最后一次性生成格式合法的完整XML文件(原代码缺少XML声明和根节点,会导致XML结构不合法,需要补全)。

修改后的完整代码

import csv

# 封装读取单个CSV数据的函数,自动跳过表头
def read_csv_data(file_path):
    data = []
    with open(file_path, 'r') as f:
        csv_reader = csv.reader(f)
        next(csv_reader, None)  # 跳过第一行表头
        for row in csv_reader:
            data.append(row)
    return data

# 定义所有需要处理的CSV文件路径列表
target_csv_files = [
    'Final Mission Arvada Import\Import Files\Client_Final.csv',
    'Final Mission Arvada Import\Import Files\Your_Second_Client.csv'  # 替换为你的第二个CSV路径
]

# 合并所有CSV的数据到同一个列表
all_client_data = []
for csv_file in target_csv_files:
    all_client_data.extend(read_csv_data(csv_file))

# 保持原有的行转XML节点逻辑不变
def convert_row_to_xml(row):
    return """
      <hmis:Client hmis:dateCreated="%s" hmis:dateUpdated="%s" hmis:userID="%s">
        <hmis:PersonalID>%s</hmis:PersonalID>
        <hmis:FirstName hmis:hashStatus="1">%s</hmis:FirstName>
        <hmis:MiddleName hmis:hashStatus="1">%s</hmis:MiddleName>
        <hmis:LastName hmis:hashStatus="1">%s</hmis:LastName>     
      </hmis:Client>""" % (row[1],row[2],row[3],row[4],row[5],row[6],row[7])

# 生成完整合法的XML文件
with open('Combined_Client.xml', 'w') as xml_file:
    # 写入XML声明和根节点(替换命名空间URL为你实际使用的)
    xml_file.write('<?xml version="1.0" encoding="UTF-8"?>\n')
    xml_file.write('<hmis:Clients xmlns:hmis="http://your-hmis-namespace-url">\n')
    # 写入所有转换后的Client节点
    xml_file.write('\n'.join([convert_row_to_xml(row) for row in all_client_data]))
    # 闭合根节点
    xml_file.write('\n</hmis:Clients>')

关键改动说明

  • 复用读取逻辑:read_csv_data函数负责处理单个CSV的读取和表头跳过,后续新增CSV只需在target_csv_files列表里添加路径即可
  • 合并数据:用extend方法将每个CSV的行数据追加到总列表,确保所有数据被统一收集
  • 补全XML结构:原代码仅生成零散的Client节点,不符合XML规范,必须添加XML声明和包含所有子节点的根节点,记得替换示例中的命名空间URL为你实际项目使用的地址

内容的提问来源于stack exchange,提问作者john_207

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 00:45:58