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

求助:按日期拆分CSV文件为单个日期独立文件

按DATE列拆分CSV文件的解决方案

下面提供两种实用的解决方案,适配不同操作场景:

1. Python脚本实现(跨平台通用)

适合熟悉Python的用户,逻辑清晰且易于调整:

import csv
from collections import defaultdict

# 替换为你的实际CSV文件路径
input_file = "your_input.csv"
# 存储每个日期对应的文件对象与表头写入状态
date_files = defaultdict(lambda: {'file': None, 'header_written': False})

try:
    with open(input_file, mode='r', encoding='utf-8') as infile:
        reader = csv.DictReader(infile, delimiter=';')
        header = reader.fieldnames
        
        for row in reader:
            date_str = row['DATE']
            file_info = date_files[date_str]
            
            if not file_info['file']:
                # 创建对应日期的输出文件
                output_filename = f"{date_str}.csv"
                file_info['file'] = open(output_filename, mode='w', encoding='utf-8', newline='')
                writer = csv.DictWriter(file_info['file'], fieldnames=header, delimiter=';')
                writer.writeheader()
                file_info['header_written'] = True
            else:
                writer = csv.DictWriter(file_info['file'], fieldnames=header, delimiter=';')
            
            writer.writerow(row)
finally:
    # 关闭所有打开的文件
    for info in date_files.values():
        if info['file']:
            info['file'].close()

使用说明:

  • 将your_input.csv替换为你实际的CSV文件路径
  • 运行脚本后,当前目录会生成以每个DATE值命名的独立CSV文件
  • 自动处理表头,确保每个输出文件都包含完整字段名

2. 命令行awk工具实现(Linux/macOS/WSL)

适合熟悉命令行的用户,无需编写脚本直接执行:

awk -F';' '
NR==1 {header=$0; next}
{
    filename=$2".csv"
    if (!seen[filename]++) {
        print header > filename
    }
    print >> filename
}' your_input.csv

使用说明:

  • -F';'指定CSV的分隔符为分号
  • NR==1捕获表头行,后续行处理时自动判断是否需要写入表头
  • $2对应DATE列(awk列索引从1开始,若DATE不是第二列请调整数字)
  • 替换your_input.csv为实际文件路径,执行后直接生成目标文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 04:09:55