You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用DictWriter替换CSV文件中的pin字段值?

实现CSV中Pin值的替换操作

要替换CSV里指定条目的pin值,不能直接追加写入,得通过「读取全部数据→修改目标条目→重新写入文件」的流程实现,具体方案如下:

解决方案代码

import csv

def update_pin(target_name, new_pin):
    # 读取CSV所有数据并保存表头
    all_rows = []
    with open("data.csv", 'r') as read_file:
        reader = csv.DictReader(read_file)
        field_names = reader.fieldnames
        
        for row in reader:
            # 匹配到目标name时更新pin值
            if row["name"] == target_name:
                row["pin"] = new_pin
            all_rows.append(row)
    
    # 将修改后的数据重新写入CSV
    with open("data.csv", 'w', newline='') as write_file:
        writer = csv.DictWriter(write_file, fieldnames=field_names)
        writer.writeheader()  # 写入表头
        writer.writerows(all_rows)

# 示例调用:把john的pin替换为9999
update_pin("john", "9999")

关键说明

  • 原代码使用'a'追加模式打开文件,只会在文件末尾新增行,无法修改已有内容,这是核心问题所在
  • 读取阶段用DictReader按字典格式读取每行数据,便于直接修改指定字段
  • 写入阶段用'w'覆盖模式打开文件,先写入表头再写入所有修改后的行,newline=''参数可避免Windows系统下出现多余空行

内容的提问来源于stack exchange,提问作者Nitesh Gautam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 10:50:23