无法在python中将列表写入csv

时间:2014-04-21 08:50:19

标签: python list csv

我有一个unicode字符串列表,我想写入cvs文件。

with open(archive_dir_today + 'myfile.csv', 'wb') as f:
    writer = csv.writer(f)
    writer.writerows(list_diff_1)

这项工作很好,除了它将每个字符都写在一个单独的单元格中。 例如,列表中的第一个条目是"1000F034E2" 我最终在csv文件中有一行看起来像这样:

1,0,0,0,F,0,3,4,E,2

是什么导致了这个问题?

1 个答案:

答案 0 :(得分:1)

你使用的是错误的方法; writer.writerows()期望多行,但您只有一行行。请改用writer.writerow()(单数,无s)。

因为writerows()需要一个行列表,它会将单行中的每一列视为一个列表; unicode字符串的列表是其各自的字符:

>>> list(u'1000F034E2')
[u'1', u'0', u'0', u'0', u'F', u'0', u'3', u'4', u'E', u'2']

那是在这种情况下写出的一行列。

如果您希望列表中的每个项目都是单独的行,那么将它们包装在列表对象中

writer.writerows([column] for column in list_diff_1)