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

如何按Department字段拆分CSV文件数据并写入对应文件?

按Department字段拆分CSV文件的实现方法

用Python内置的csv模块就能轻松实现这个需求,无需额外安装第三方库,代码逻辑简洁直接:

import csv

# 原始CSV文件路径(请替换为你的实际文件路径)
input_file = "employees.csv"
# 存储各部门对应的文件句柄和CSV写入器
dept_handlers = {}

try:
    with open(input_file, "r", newline="") as infile:
        # 用DictReader读取,支持按字段名直接访问数据
        reader = csv.DictReader(infile)
        headers = reader.fieldnames
        
        for row in reader:
            dept = row["Department"]
            # 若该部门未创建对应文件,先初始化文件和写入器
            if dept not in dept_handlers:
                out_file = open(f"{dept}.csv", "w", newline="")
                writer = csv.writer(out_file)
                # 先写入表头,保证输出CSV结构与原始文件一致
                writer.writerow(headers)
                dept_handlers[dept] = (out_file, writer)
            # 将当前行数据写入对应部门的文件
            dept_handlers[dept][1].writerow(row.values())
finally:
    # 确保所有打开的文件都被正确关闭,避免资源泄漏
    for file, _ in dept_handlers.values():
        file.close()

关键细节说明

  • 用DictReader读取文件,可以直接通过字段名(如row["Department"])获取对应值,比按索引取值更直观不易出错;
  • 每个部门的文件仅在第一次遇到该部门时创建,并写入表头,后续直接追加数据;
  • finally块强制关闭所有文件,即使代码执行中出现异常也不会遗漏。

注意事项

  • 如果原始CSV文件不在当前工作目录,需要填写完整的文件路径;
  • 若部门名称包含特殊字符(如斜杠、空格),建议先对名称做处理(例如把空格替换为下划线),避免文件创建失败;
  • 运行代码前请确保当前目录有文件写入权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 13:33:32