在Python中将字符串列表写入Excel CSV文件

56 投票
4 回答
268389 浏览
提问于 2025-04-16 22:45

我正在尝试用下面的脚本在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)

撰写回答