如何用Python CSV模块将列表值写入CSV文件指定列
用Python脚本更新CSV指定列的值
可以通过Python内置的csv模块轻松实现这个需求,以下是具体方案:
方法一:生成新的CSV文件(推荐,避免误改原文件)
import csv # 修正后的新颜色列表(字符串需加引号) new_colour = ["pink", "yellow", "black"] # 读取原CSV并更新数据 updated_rows = [] with open("your_file.csv", "r") as file: # 按列名读取CSV,方便定位目标列 reader = csv.DictReader(file) # 遍历每行数据和对应的新颜色 for row, colour in zip(reader, new_colour): # 替换colum3列的值(注意列名拼写和原文件一致) row["colum3"] = colour updated_rows.append(row) # 将更新后的数据写入新文件 with open("updated_file.csv", "w", newline="") as file: writer = csv.DictWriter(file, fieldnames=reader.fieldnames) writer.writeheader() # 写入表头 writer.writerows(updated_rows) # 写入所有更新后的行
方法二:直接修改原文件
如果需要直接覆盖原文件,可以先把内容读到内存,再写回去:
import csv new_colour = ["pink", "yellow", "black"] # 读取原文件内容到内存 rows = [] with open("your_file.csv", "r") as file: reader = csv.DictReader(file) fieldnames = reader.fieldnames for row, colour in zip(reader, new_colour): row["colum3"] = colour rows.append(row) # 写回原文件 with open("your_file.csv", "w", newline="") as file: writer = csv.DictWriter(file, fieldnames=fieldnames) writer.writeheader() writer.writerows(rows)
注意事项
- 确保原CSV的目标列名是
colum3(注意少了一个字母n),脚本中的列名必须和原文件完全匹配。 - 新颜色列表的长度要和CSV的数据行数(不含表头)一致,否则
zip会自动截断到较短的列表长度。 - 写入CSV时指定
newline="",可以避免Windows系统下生成多余空行。
内容的提问来源于stack exchange,提问作者Crowtree
相关产品推荐
相关产品推荐

