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

如何将列表导出为单列CSV并去除末尾逗号?

问题解析与解决方案

咱先澄清第一个疑问:这跟记事本没关系,完全是代码的参数设置和写入逻辑出了问题。

为啥会出现当前的错误输出?

你原代码里犯了两个关键错误:

  1. 把csv.writer的lineterminator(行结束符)设成了,,这会导致写完一行后自动加逗号,而不是默认的换行符。
  2. 用writerow(phone_names_value_list)是把整个列表里的所有元素当成同一行的多列来写入,所以所有名字会挤在一行,用逗号分隔,再加上行结束符是逗号,就出现了末尾多出来的逗号。

修改成单列CSV的正确写法

要实现每个名字单独占一行的单列效果,有两种简单的写法:

写法一:用writerows批量写入

把每个名字包装成单元素列表,writerows会自动把每个单元素列表当成一行写入:

import csv

phone_names_value_list = ['Jimmy French', 'Casey Fryer', 'Jane Pickens', 'Tommy L. Garcetti', 'Nada Lewis']

with open("export_5.csv", "w", newline='') as f:
    writer = csv.writer(f)
    # 生成每个名字的单元素列表迭代器,批量写入
    writer.writerows([name] for name in phone_names_value_list)

写法二:循环逐个写入

如果觉得批量写法不好理解,也可以循环遍历列表,每个名字单独用writerow写入:

import csv

phone_names_value_list = ['Jimmy French', 'Casey Fryer', 'Jane Pickens', 'Tommy L. Garcetti', 'Nada Lewis']

with open("export_5.csv", "w", newline='') as f:
    writer = csv.writer(f)
    for name in phone_names_value_list:
        writer.writerow([name])  # 每个名字作为单独一行的一列

关键细节说明

  • newline=''是csv模块官方推荐的写法,能避免Windows和Unix系统下换行符混乱的问题。
  • 不用手动设置lineterminator,默认的换行符(Windows是\r\n,Unix是\n)就符合CSV规范,用记事本打开也会每行显示一个名字。
  • 修改后生成的CSV完全没有多余的末尾逗号,每个名字单独占一行,完美符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 21:23:02