Python如何为现有CSV文件的首行追加新的表头字段
解决方案
你当前使用追加模式'a'打开文件,写入的内容默认会追加到文件末尾,无法直接修改首行内容。CSV是线性存储的文本文件,没有直接插入首行的接口,需要先读取全量内容修改后回写,调整后的代码如下:
import csv # 待追加的新表头字段 new_header = ["field_1", "field_2", "field_3", "field_4"] # 读取原有CSV全量内容 with open('test.csv', 'r', encoding='UTF8') as f: reader = csv.reader(f) all_rows = list(reader) # 拼接原有表头和新字段 all_rows[0] += new_header # 回写修改后的全部内容到原文件 with open('test.csv', 'w', newline='', encoding='UTF8') as f: writer = csv.writer(f) writer.writerows(all_rows)
注意事项
- 写入时加
newline=''是csv模块官方推荐写法,可避免Windows系统下生成的CSV出现多余空行 - 若CSV文件体积过大(GB级),全量读取会占用过多内存,建议先将修改后的内容写入临时文件,再用临时文件替换原文件
- 多脚本同时操作同一个CSV的场景建议添加文件锁,避免并发读写导致的文件内容损坏
内容的提问来源于stack exchange,提问作者Daniel Hutchinson
相关产品推荐
相关产品推荐

