2014-04-21 21 views
0

我有一个我想写入CVS文件的unicode字符串列表。无法在Python中将列表写入csv

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

您正在使用错误的方法; 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) 
+0

我想在一个单独的行列表中的每个项目。并非全部在一行中。 – Eric