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

And*_*nov 41 python csv

我正在尝试使用下面的脚本创建一个包含Python中字符串列表内容的csv文件.但是当我检查输出文件时,结果是每个字符都用逗号分隔.如何指示CSV.writer分隔列表中的每个字符串而不是每个字符?在这种情况下,我在Snow Leopard上使用Python 2.6.

我检查了Python指南,找不到任何具体内容:
http : //www.python.org/dev/peps/pep-0305/#managing-different-dialects

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)
Run Code Online (Sandbox Code Playgroud)

Gar*_*Jax 72

该方法采用iterable作为参数.结果集必须是列表(列)的列表(行).csv.writer writerow

csvwriter.writerow(row)
Run Code Online (Sandbox Code Playgroud)

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

要么:

import csv
RESULTS = [
    ['apple','cherry','orange','pineapple','strawberry']
]
with open('output.csv','wb') as result_file:
    wr = csv.writer(result_file, dialect='excel')
    wr.writerows(RESULTS)
Run Code Online (Sandbox Code Playgroud)

要么:

import csv
RESULT = ['apple','cherry','orange','pineapple','strawberry']
with open('output.csv','wb') as result_file:
    wr = csv.writer(result_file, dialect='excel')
    wr.writerow(RESULT)
Run Code Online (Sandbox Code Playgroud)

  • 请注意,从Python 3开始,你应该使用`with open("output.csv","w")`或者你会得到一个错误,期望像对象这样的字节而不是字符串. (14认同)

Mar*_*som 21

修复非常简单,只需将参数转换为一个列表即可.

for item in RESULTS:
     wr.writerow([item,])
Run Code Online (Sandbox Code Playgroud)


Dan*_*iel 6

我知道我有点迟了,但我发现有效(并且不需要使用csv)的是写一个for循环,它会为列表中的每个元素写入文件.

# 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()
Run Code Online (Sandbox Code Playgroud)

我不知道这个解决方案是否比已经提供的解决方案更好,但它更能反映出你原来的逻辑,所以我想我会分享.

  • 不使用“csv”模块编写 csv 文件的主要问题是,如果您的值包含引号或逗号,您的文件将被破坏。 (2认同)