Python将列表项写入csv

时间:2014-11-27 07:14:28

标签: python list csv

我有这个代码,假设将我的列表项导出到csv文件 其中文件中的每一行都包含列表中的项目。

writer = csv.writer(open(path+"output.csv", 'wb'))
for item in result:
     writer.writerow(item)

我得到的结果很奇怪(例如列表中的2个顶级项目:'过期'以及'代码'):

p,a,s,t, ,d,u,e
c,o,d,e

我想得到的结果很简单:

    past due
    code

有什么想法吗?

5 个答案:

答案 0 :(得分:2)

csvwriter.writerow(row)

这会将row参数写入writer的文件对象,并根据当前方言进行格式化。

更多信息请参阅csvwriter

答案 1 :(得分:1)

此处已有解决方案:Writing List of Strings to Excel CSV File in Python

您不需要遍历列表中的每个元素。试试这个:

writer = csv.writer(open(path+"output.csv", 'wb'))
writer.writerow(result)

答案 2 :(得分:1)

writerow方法接受单个参数,并写入构成其参数的元素的逗号分隔表示。

通常使用的参数是列表,元组等。显然你使用了一个字符串,因此写的是字符串元素的序列

如果要迭代的所有元素都是字符串,那么这就可以了解

for item in result:
    writer.writerow([item])

但写一个只包含一列的csv文件是不寻常的,你可能想写一个简单的文本文件...如果result中的所有元素都是字符串,则代码

with of as open('result.txt')
    of.write("\n".join(result))

将完成这项工作。

答案 3 :(得分:0)

我认为问题在于:

for item in result:
     writer.writerow(item)

result变量实际上是一个字符串,这就是为什么它在每个字符后添加一个逗号。 result不是像你的代码所暗示的字符串数组 - 它实际上是一个字符串(一个字符数组)。

答案 4 :(得分:0)

with open('returns.csv', 'wb') as f:
    writer = csv.writer(f)
    for val in daily_returns:
        writer.writerow([val])