如何为CSV文件每99行添加递增的唯一前缀字符串?
CSV分组添加递增前缀的解决方案
核心需求
- 每99行数据(跳过表头)分配一个递增前缀,起始值从10000开始,每满99行前缀+1
- 格式化
Name字段:移除空格后拼接前缀(格式:前缀-无空格姓名) - 格式化
Number字段:移除括号()和横杠-,保留纯数字 - 复用原有CSV导入导出逻辑
Python实现脚本
import csv # 配置参数 INPUT_FILE = "import.csv" OUTPUT_FILE = "desired_output.csv" START_PREFIX = 10000 ROWS_PER_GROUP = 99 with open(INPUT_FILE, mode='r', newline='', encoding='utf-8') as infile, \ open(OUTPUT_FILE, mode='w', newline='', encoding='utf-8') as outfile: reader = csv.DictReader(infile) writer = csv.DictWriter(outfile, fieldnames=reader.fieldnames) # 写入表头 writer.writeheader() current_prefix = START_PREFIX row_count = 0 # 计数当前组内的行数(跳过表头) for row in reader: # 处理Name字段:去掉空格 + 拼接前缀 cleaned_name = row['Name'].replace(" ", "") row['Name'] = f"{current_prefix}-{cleaned_name}" # 处理Number字段:移除括号和横杠 cleaned_number = row['Number'].replace("(", "").replace(")", "").replace("-", "") row['Number'] = cleaned_number writer.writerow(row) row_count += 1 # 每满99行,前缀递增,重置计数 if row_count % ROWS_PER_GROUP == 0: current_prefix += 1 row_count = 0
效果验证
输入import.csv示例:
Name,Number John Smith,(555)123-4567 Jane Smith,(555)123-4567 ... Jeremy Smith,(555)123-4567
输出desired_output.csv示例:
Name,Number 10000-JohnSmith,5551234567 10000-JaneSmith,5551234567 ... 10001-JeremySmith,5551234567
说明
- 脚本通过
row_count跟踪当前组内的行数,每达到99行就自动递增前缀 - 字段格式化逻辑直接嵌入循环,不影响原有CSV读写的核心流程
- 可通过修改
START_PREFIX和ROWS_PER_GROUP参数调整起始前缀和分组大小
内容的提问来源于stack exchange,提问作者RKillcrazy
相关产品推荐
相关产品推荐

