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

如何将Python字典写入CSV避免空行?实现CSV与字典互转及文件更新

问题解决方法

两个问题的修复方案:

1. 消除CSV空行

Python的csv.writer在Windows环境下默认会自动添加额外换行符,导致每行之间出现空行。解决办法是打开文件时指定newline=''参数,让csv模块自行处理换行逻辑。

2. 合并输入输出为同一文件

添加新条目后,直接将更新后的字典写回原input.csv文件,而非生成新的output.csv,这样下次运行程序就能直接读取到更新后的内容。

修改后的完整代码

import csv

filename = "input.csv" 

acronyms = {}                                                        
# 读取现有CSV内容到字典
with open(filename, 'r', newline='') as inp:                                               
    reader = csv.reader(inp)                                                   
    acronyms = {rows[0]: rows[1] for rows in reader}                  

# 获取用户输入的新缩写和定义
new_acronym = input("What is the acronym you would like to add?   ")
new_definition = input("What is the definition of this new acronym?   ")

# 更新字典
acronyms.update({new_acronym: new_definition})

# 将更新后的内容写回原文件
with open(filename, 'w', newline='') as f:
    w = csv.writer(f)
    w.writerows(acronyms.items())

额外说明

  • 读取文件时加上newline=''是好习惯,能避免读取时因换行符问题出现异常。
  • 如果你的CSV文件有表头(比如第一行是"Acronym","Definition"),需要跳过表头行,否则表头会被当成普通记录存入字典,可在读取时添加一行代码:
with open(filename, 'r', newline='') as inp:                                               
    reader = csv.reader(inp)
    next(reader)  # 跳过表头行
    acronyms = {rows[0]: rows[1] for rows in reader} 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:45:35