如何利用master.csv主文件生成多个含指定数据的CSV文件
生成指定行数的CSV文件(基于master.csv)
场景说明
你有一个包含name和product列的master.csv文件,需要生成多个新CSV文件,每个文件保留原表头且包含100条数据。以下提供两种实用的Python脚本实现方式,无需额外依赖工具。
方式一:拆分原数据为多份100条文件
如果原文件数据量较大,需要按100条为单位拆分到不同文件(最后一个文件可能不足100条):
import csv from itertools import islice # 配置参数 INPUT_FILE = "master.csv" ROWS_PER_FILE = 100 with open(INPUT_FILE, "r", newline="", encoding="utf-8") as infile: reader = csv.reader(infile) header = next(reader) # 读取表头 file_index = 1 while True: # 读取下一批100行数据 data_chunk = list(islice(reader, ROWS_PER_FILE)) if not data_chunk: break # 没有数据时退出循环 output_filename = f"master_part_{file_index}.csv" with open(output_filename, "w", newline="", encoding="utf-8") as outfile: writer = csv.writer(outfile) writer.writerow(header) writer.writerows(data_chunk) print(f"已创建文件: {output_filename}") file_index += 1
方式二:重复原数据生成固定100条的文件
如果原文件数据不足100条,需要重复复制原数据来填满100条;或者需要每个新文件都包含100条重复的原数据:
import csv # 配置参数 INPUT_FILE = "master.csv" ROWS_PER_FILE = 100 NUM_NEW_FILES = 5 # 要生成的新文件数量,可按需修改 with open(INPUT_FILE, "r", newline="", encoding="utf-8") as infile: reader = csv.reader(infile) header = next(reader) original_data = list(reader) original_row_count = len(original_data) if original_row_count == 0: print("错误:原文件没有数据行") exit() for file_num in range(1, NUM_NEW_FILES + 1): output_filename = f"master_copy_{file_num}.csv" with open(output_filename, "w", newline="", encoding="utf-8") as outfile: writer = csv.writer(outfile) writer.writerow(header) # 计算重复次数和剩余行数 repeat_times = ROWS_PER_FILE // original_row_count remaining = ROWS_PER_FILE % original_row_count # 重复写入原数据 for _ in range(repeat_times): writer.writerows(original_data) # 写入剩余部分 writer.writerows(original_data[:remaining]) print(f"已创建文件: {output_filename}")
使用步骤
- 将上述任意一个脚本保存为
generate_csvs.py - 把脚本文件放在
master.csv所在的同一文件夹中 - 打开终端/命令提示符,进入该文件夹,运行命令:
python generate_csvs.py
内容的提问来源于stack exchange,提问作者Pankaj Kapoor
相关产品推荐
相关产品推荐

