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

使用Python csv模块writerow时字符被拆分,如何将列表项整行写入CSV?

问题分析与解决方案

你的代码存在两个关键问题,导致CSV文件输出不符合预期:

  • 重复打开文件:with语句已经自动创建并管理文件对象f,后续的f = open('final_data.csv', "w+")属于多余操作,会覆盖原文件句柄,还可能引发资源泄漏或写入异常。
  • writerow参数错误:csv.writer.writerow()要求传入可迭代序列(如列表、元组),如果直接传字符串,它会将字符串的每个字符视为独立列,最终导致每行字符被逗号拆分。

修正后的代码

方式一:逐行写入

import csv

final_data = ['0.0267166', '0.0534331', '0.0801497', '0.106866']

with open('final_data.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    for item in final_data:
        writer.writerow([item])  # 将单个字符串包装为列表传入

方式二:批量写入(更高效)

import csv

final_data = ['0.0267166', '0.0534331', '0.0801497', '0.106866']

with open('final_data.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    # 生成包含单个元素的序列迭代器,批量写入
    writer.writerows([item] for item in final_data)

修正说明

  • 移除了重复的open调用,依赖with语句自动完成文件的打开与关闭,避免资源问题。
  • 将每个字符串元素包装进列表[item],确保writerow把整个字符串作为一行的单个单元格写入,不再拆分字符。

内容的提问来源于stack exchange,提问作者Pol Barreiro Font

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:45:43