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

csv.writer写入CSV文件时将每个字符视为字段的问题求助

问题:CSV写入时每行内容被拆分为单个字符

问题根源

csv.writer.writerows() 方法要求传入的是多行数据的集合,其中每一行必须是一个可迭代的单元格序列(比如列表、元组)。你当前的teams列表中每个元素是字符串,而字符串本身是单个字符的可迭代对象,因此writerows会将每个字符串拆分为单个字符,作为独立单元格写入CSV。

解决方案

方法1:循环使用writerow()写入

将每个团队名包装为单个元素的列表,确保每行对应一个单元格:

import csv

with open('teams.csv', 'w', newline='') as f:
    wtr = csv.writer(f)
    for team in teams:
        wtr.writerow([team])

方法2:用生成器配合writerows()

通过生成器将每个字符串包装为序列,实现一次性写入:

import csv

with open('teams.csv', 'w', newline='') as f:
    wtr = csv.writer(f)
    wtr.writerows([team] for team in teams)

额外优化:简化Teams列表生成

可以用列表推导式替代原有的while循环,让代码更简洁高效:

nteams = 16
teams = [f"Team {c}" for c in range(1, nteams + 1)]

注意事项

在Python 3中写入CSV文件时,建议添加newline=''参数,避免文件中出现多余的空行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 02:00:34