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

如何用Python的csv模块将嵌套列表以原始Python格式写入CSV文件?

如何用csv模块将嵌套列表以Python原始格式存入CSV文件

你之前的代码问题出在writerow(matrix)——csv模块的writerow会把传入列表的每个元素当作CSV的一列,所以你的三个子列表被分别处理成了三列,每个子列表转成字符串后被自动加上了引号,最终就出现了你看到的带引号的多列内容,而且缺少外层的方括号。

要实现将整个矩阵以[[1,2,3],[4,5,6],[7,8,9]]的格式存入文件,你需要把整个矩阵的字符串作为单个CSV单元格写入,同时通过csv模块的参数控制去掉多余的引号。

方法一:使用csv.QUOTE_NONE禁用引号

import csv

matrix = [[1,2,3],[4,5,6],[7,8,9]]

with open('matrix.txt', 'w', newline='') as f:
    # 禁用引号,避免字符串被包裹
    writer = csv.writer(f, quoting=csv.QUOTE_NONE, escapechar='')
    # 将矩阵转成字符串,放到列表里作为单个元素传入writerow
    writer.writerow([str(matrix)])

运行这段代码后,文件里的内容就是:

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

补充说明

你之前尝试直接转字符串写入出现“每个字符间插逗号”的问题,是因为你直接把str(matrix)传给了writerow——writerow会把字符串的每个字符当作独立的列元素,所以才会出现逗号分隔每个字符的情况。必须把字符串放到一个列表里([str(matrix)]),这样它才会被当作一个完整的单元格处理。

如果不需要严格遵循CSV格式(只是要存这个字符串),其实也可以不用csv模块,直接写入字符串:

matrix = [[1,2,3],[4,5,6],[7,8,9]]

with open('matrix.txt', 'w') as f:
    f.write(str(matrix))

但既然你要求用csv模块,第一种方法就完全满足需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 00:40:41