在Python中将字符串列表写入Excel CSV文件
我正在尝试用下面的脚本在Python中创建一个csv文件,这个文件里包含一个字符串列表的内容。但是当我查看输出文件时,发现每个字符之间都用逗号分隔。请问我该如何告诉csv.writer
,让我分隔的是列表中的每个字符串,而不是每个字符呢?
import csv
RESULTS = ['apple','cherry','orange','pineapple','strawberry']
result_file = open("output.csv",'wb')
wr = csv.writer(result_file, dialect='excel')
for item in RESULTS:
wr.writerow(item)
我查阅了PEP 305,但没有找到具体的解决办法。
4 个回答
10
我知道我来得有点晚,但我发现一个有效的方法(而且不需要用到 csv
)就是写一个循环,把你列表里的每个元素都写到文件里。
# Define Data
RESULTS = ['apple','cherry','orange','pineapple','strawberry']
# Open File
resultFyle = open("output.csv",'w')
# Write data to file
for r in RESULTS:
resultFyle.write(r + "\n")
resultFyle.close()
我不知道这个方法是否比之前提供的更好,但它更贴近你最初的想法,所以我想分享一下。
37
这个问题很简单解决,你只需要把传给 writerow
的参数改成一个列表就可以了。
for item in RESULTS:
wr.writerow([item])
96
csv.writer
是一个用来写入 CSV 文件的工具,而 writerow
方法则是用来写一行数据的。这个方法需要你给它一个可迭代的对象作为参数。简单来说,你的数据需要是一个列表,其中每个元素又是一个列表,代表每一行的数据。
csvwriter.writerow(row)
这个 row 参数会被写入到文件中,格式会根据当前的设置来调整。
你可以选择以下两种方式之一:
import csv
RESULTS = [
['apple','cherry','orange','pineapple','strawberry']
]
with open('output.csv','w') as result_file:
wr = csv.writer(result_file, dialect='excel')
wr.writerows(RESULTS)
或者:
import csv
RESULT = ['apple','cherry','orange','pineapple','strawberry']
with open('output.csv','w') as result_file:
wr = csv.writer(result_file, dialect='excel')
wr.writerow(RESULT)