如何使用Python实现CSV文件第二行单元格值左移一位对齐表头
实现思路
- 调用Python内置
csv模块读取原始CSV文件,分别提取表头行与错位的数据行 - 按规则修正数据行:将原数据行第1位(名)和第2位(姓)拼接为新的owner列值,剩余字段从第3位开始依次向左偏移1位,匹配表头对应的language、email字段
- 将修正后的表头和数据写入新CSV文件,避免覆盖原始文件
可直接运行的代码示例
import csv # 替换为你本地的文件路径 input_path = "raw_data.csv" output_path = "fixed_data.csv" # 读取原始文件内容 with open(input_path, "r", encoding="utf-8") as f: reader = csv.reader(f) header = next(reader) # 读取表头 raw_data_row = next(reader) # 读取错位的第二行数据 # 按需求修正数据 fixed_row = [ f"{raw_data_row[0]} {raw_data_row[1]}", # 拼接名和姓作为owner raw_data_row[2], # 对应language列 raw_data_row[3] # 对应email列 ] # 写入修正后的文件 with open(output_path, "w", encoding="utf-8", newline="") as f: writer = csv.writer(f) writer.writerow(header) writer.writerow(fixed_row)
适配说明
- 如果文件包含多行错位数据,循环读取所有非表头行执行相同修正逻辑即可
- 如果姓名拼接不需要空格,直接删除
f"{raw_data_row[0]} {raw_data_row[1]}"中的空格即可 - 若你的CSV文件编码非utf-8,可将encoding参数调整为对应编码(如gbk)
内容的提问来源于stack exchange,提问作者Anirudh Bragadeesan
相关产品推荐
相关产品推荐

