You need to enable JavaScript to run this app. 如何将Python元组列表按指定行数分块写入多个CSV文件
优惠活动
大模型
产品
解决方案
定价
更多

如何将Python元组列表按指定行数分块写入多个CSV文件

元组列表按行数阈值分块写入多CSV文件实现

核心逻辑

按照自定义的单文件最大行数,将完整的元组列表拆分为连续的子数据块,每个子块独立写入一个带有序号的CSV文件,所有文件保持统一的表头结构,自动兼容最后一个数据块不足阈值的场景。

具体实现步骤

  • 提前配置基础参数:表头字段、单文件允许的最大存储行数、输出文件的命名规则(用两位数字对齐序号,避免文件资源管理器里排序错乱)
  • 对原元组列表做固定步长切分,形成大小不超过阈值的子数据块
  • 循环遍历每个子数据块,打开对应序号的CSV文件,先写入统一表头,再逐行写入当前块的元组数据
  • 补充空列表的兼容判断,避免空数据时生成无意义的空文件

可直接复用的示例代码

import csv

# 基础配置项
fieldnames = ['A', 'B']
chunk_size = 2  # 单文件存储的最大数据行数
data_list = [(10.01,20.11),(34,20),(33,88),(44,90),(43,99)]

# 空数据直接跳过,不生成文件
if not data_list:
    print("待写入的元组列表为空,不生成CSV文件")
else:
    # 按固定步长切分数据块
    chunks = [data_list[i:i+chunk_size] for i in range(0, len(data_list), chunk_size)]
    # 逐块写入文件
    for block_idx, chunk_data in enumerate(chunks, start=1):
        output_path = f"output_csv_file_{block_idx:02d}.csv"
        # 加newline=''避免Windows环境下CSV出现空行
        with open(output_path, 'w', newline='', encoding='utf-8') as f:
            writer = csv.DictWriter(f, fieldnames=fieldnames)
            writer.writeheader()
            for row in chunk_data:
                writer.writerow({"A": row[0], "B": row[1]})

运行效果匹配

按照示例配置运行时:

  • 5条总数据、单块2行的配置,会生成3个文件,和预期的output_csv_file_01.csv、output_csv_file_02.csv、output_csv_file_03.csv完全对应
  • 如果总数据为20000条、单块阈值设为5000行,会自动生成4个等大的CSV文件,每个文件包含5000行有效数据
  • 最后一个数据块不足阈值时(比如示例里最后只剩1条数据),也会正常生成对应文件,不会出现报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 12:06:04