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

如何用Python将两个列表写入CSV文件的两列?

解决CSV写入两列的问题

嘿,这个问题我之前也踩过坑!其实zip(a,b)本身是没问题的——它已经把两个列表的元素正确配对成了(1,4)、(2,5)、(3,6)这样的元组,问题出在你写入CSV文件的方式上。如果直接把这些元组当成字符串写入,Excel会把整行内容识别成一列,而不是拆分到两列。

下面给你两种靠谱的解决方法:

方法一:用Python内置的csv模块(推荐)

这是最规范的做法,csv模块会自动处理列分隔符、特殊字符等情况,避免各种奇怪的格式问题:

import csv

a = [1,2,3]
b = [4,5,6]

# 打开文件时加上 newline='' 可以避免Windows下出现额外空行
with open('result.csv', 'w', newline='', encoding='utf-8') as csv_file:
    # 创建CSV写入器
    writer = csv.writer(csv_file)
    # 先写入表头
    writer.writerow(['col1', 'col2'])
    # 批量写入zip配对后的所有行
    writer.writerows(zip(a, b))

方法二:手动写入(适合简单场景)

如果不想用csv模块,你需要手动用逗号分隔每一列的内容(CSV的核心就是用逗号分隔列):

a = [1,2,3]
b = [4,5,6]

with open('result.csv', 'w', encoding='utf-8') as f:
    # 写入表头
    f.write('col1,col2\n')
    # 遍历zip后的配对元素,用逗号分隔写入
    for num1, num2 in zip(a, b):
        f.write(f"{num1},{num2}\n")

为什么之前的写法会失败?

如果你之前是直接把元组转成字符串写入(比如f.write(str(row) + '\n')),那写入的内容会是(1, 4)这种带括号的格式,Excel自然会把它当成一列。而用上面的方法,写入的每一行是1,4这样的逗号分隔格式,Excel就能正确识别成两列了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:30:19