从.csv导入/导出到多个python列表?

时间:2017-11-22 17:50:13

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

我有两个列表,其中一个是简单的值列表,另一个是列表列表,每个元素都有两个值。我如何将这些列表分别存储在单个.csv表中,并在运行另一个python脚本时导入它?

以下是一个示例:

list_a = [0, 0, 0, 0, 0, 0, 0]
list_b = [[0,0], [0,0], [0,0], [0,0], [0,0]]

我试过这个:

with open("output.csv", "w", newline="") as a:
    writer = csv.writer(a)
    writer.writerows(list_a)
    writer.writerows(list_b)

但是list_a和list_b存储在同一列上,而list_b值而不是(0,0)存储为(,0,“,”,0,)。

所以我试过了:

writer = csv.writer(a, quoting=csv.QUOTE_NONE)

但是这出错了:

_csv.Error: need to escape, but no escapechar set

所以我做了:

writer = csv.writer(a, quoting=csv.QUOTE_NONE, escapechar='\\')

然后我得到像(,0,\ ,, 0,)这样的值?

我需要的格式是list_a和list_b可以导出到.csv文件中并按原样导入并在相同或其他脚本中使用/修改。导出时我在哪里出错,如何将其作为python脚本列表导入?实现这一目标的最简单方法是什么?

提前致谢:)

1 个答案:

答案 0 :(得分:0)

此示例使用izip(而不是zip)来避免创建新列表并将其保留在内存中。它还避免使用任何循环,因此代码简洁明了。< .em>

import csv
from itertools import izip

with open('output.csv', 'w') as m:
    writer = csv.writer(m)
    writer.writerows(izip(list_a, list_b))