我正在尝试使用下面的脚本创建一个包含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
Run Code Online (Sandbox Code Playgroud)csvwriter.writerow(row)
将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)
Mar*_*som 21
修复非常简单,只需将参数转换为一个列表即可.
for item in RESULTS:
wr.writerow([item,])
Run Code Online (Sandbox Code Playgroud)
我知道我有点迟了,但我发现有效(并且不需要使用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)
我不知道这个解决方案是否比已经提供的解决方案更好,但它更能反映出你原来的逻辑,所以我想我会分享.
归档时间: |
|
查看次数: |
191093 次 |
最近记录: |