PowerShell操作:查询CSV列名并写入新CSV文件
给CSV表头新增一列(不改动原有数据)
嘿,我懂你要的是什么——就是只给CSV表头加一列,原数据内容完全不动对吧?这事儿看着简单,但确实容易找不到直接的案例,我给你两种常用的实现方式,都是轻量好上手的:
方法1:用Python内置csv模块(无需额外安装库)
首先先明确你的原CSV内容(假设文件名叫original.csv):
"Name","Location","Phone" "John Smith","Toronto","555.555.5555" "Jane Doe","Dallas","555.555.5554"
下面的代码会读取原表头,插入你想要的新列名(比如ID),然后把原数据原封不动写入新文件:
import csv # 配置文件和新列名 input_filename = "original.csv" output_filename = "updated_csv.csv" new_col_name = "ID" # 打开原文件和新文件 with open(input_filename, 'r', newline='', encoding='utf-8') as infile, \ open(output_filename, 'w', newline='', encoding='utf-8') as outfile: csv_reader = csv.reader(infile) csv_writer = csv.writer(outfile) # 处理表头:读取原表头并插入新列(这里是插在开头,要插末尾就用append) original_header = next(csv_reader) original_header.insert(0, new_col_name) csv_writer.writerow(original_header) # 把剩下的所有数据行直接写入新文件,完全不修改内容 for row in csv_reader: csv_writer.writerow(row)
运行后你会得到新CSV,表头变成"ID","Name","Location","Phone",原有数据行保持原样,新增列对应的位置是空值,完全符合你的需求。
方法2:用Pandas(更简洁,适合经常处理数据的场景)
如果你已经安装了Pandas(没装的话用pip install pandas安装),可以用更短的代码实现:
import pandas as pd # 读取原CSV df = pd.read_csv("original.csv") # 新增一列(表头加在末尾,值默认是空) df["ID"] = "" # 导出新CSV,不要保留Pandas自动生成的索引 df.to_csv("updated_csv.csv", index=False)
这个方法的效果和上面完全一样,只是代码更简洁,适合批量处理或者已经在用Pandas的场景。
内容的提问来源于stack exchange,提问作者Clearest
相关产品推荐
相关产品推荐

