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

Python中如何将列表作为新行追加到CSV文件而非最后一列?

解决CSV追加列表为新行而非列的问题

你当前代码的问题出在使用了zip()函数,它会把三个列表对应索引的元素打包成元组,比如生成的rows是[('Mean', 'Variance', 'SD'), (mean, variance, std)],写入CSV后自然会变成两列,而非你期望的三个独立行。

修正方案

直接将三个列表作为独立行存入一个大列表,然后写入CSV即可:

# 假设mean、variance、std已提前定义
row1 = ['Mean', mean]
row2 = ["Variance", variance]
row3 = ["SD", std]

# 把每个要写入的行放到一个列表里
all_rows = [row1, row2, row3]

from csv import writer
with open(r'E:\chrome dlds\null - Sheet1.csv', "a", newline='') as f:
    csv_writer = writer(f)  # 避免变量名和导入的writer类重名
    csv_writer.writerows(all_rows)  # 一次性写入所有行

# 读取验证(注意要先导入csv模块)
import csv
with open(r'E:\chrome dlds\null - Sheet1.csv', mode='r') as file:
    reader = csv.reader(file)
    for line in reader:
        print(line)

关键说明

  1. 不要用zip():它的作用是按索引合并多个序列,不是把多个序列作为独立行
  2. 使用writerows():可以一次性写入多行,比循环调用writerow()更高效
  3. 变量名避免冲突:原代码里把实例命名为writer,会覆盖导入的csv.writer类,改用csv_writer这类命名更安全
  4. 读取时补全导入:原代码读取部分没导入csv模块,运行会报错,需要补上import csv

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 22:45:13