【问题标题】:How to write each element of a list into a seperate field in a csv file?如何将列表的每个元素写入 csv 文件中的单独字段?
【发布时间】:2018-05-03 05:24:12
【问题描述】:

我想将列表列表写入 csv 文件。列表的每个元素都应该进入一个新列,并且每个列表都应该有自己的行。 我不知道如何将列表的每个元素插入到新列中。我的代码如下所示:

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

with open('example.csv', 'w') as f:
    writer = csv.writer(f)

    for line in example_list:
        writer.writerow(line)

但这会给我一个文件,每个列表都在一个列中。 谁能给我一个提示如何分隔列表元素?

【问题讨论】:

  • 您是否希望将此包含 3 个列表的列表扁平化为一行 9 列?
  • 你能做一个矩阵来显示你想要什么吗?
  • 如果这就是你想要的,它是 this question 的副本,它有一个很好的答案。
  • 谢谢大家。事实证明,上面的代码一切正常。我的 excel 设置必须更改。这就是为什么不同的元素不在单独的列中的原因

标签: python python-3.x csv export-to-csv


【解决方案1】:

正如所写,您的代码为我提供了以下 csv 文件:

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

所以它已经被分成了几列。如果您想用制表符(或空格)而不是逗号来分隔它们,请尝试以下操作:

import csv
example_list = [[1,2,3], [4,5,6], [7,8,9]]
with open('example.csv', 'w') as f:
    writer = csv.writer(f, delimiter='\t')
    for line in example_list:
        writer.writerow(line)

【讨论】:

  • 感谢 Fishy,事实证明问题出在我的 excel 设置中
【解决方案2】:

您拥有的代码应该已经创建了正确的 CSV 文件。如果您将 Python 3.x 与 CSV 写入器一起使用,则应该将 newline='' 添加到您的 open() 参数中。

另请注意,当您正在编写列表列表时,您也可以按以下方式执行此操作:

import csv

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

with open('example.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerows(example_list)

【讨论】:

    猜你喜欢
    • 2021-05-29
    • 2019-07-20
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多