我有这种字符串输出:
Gender,Age,Weight,Height
Male, 55, 82, 180
Female, 34,55,167
Female,44,67,182
Male,81,73,175
Male,44,34,87,185
从该输出生成 CSV 文件的最简单方法是什么?我尝试了一些 StringIO 方法,但我无法让它们在 Python 3.6.0 中工作。
最佳答案
第一种方法:使用 StringIO
这是我针对 Python 3.6 测试的方法:
import csv
from io import StringIO
my_string = """
Gender,Age,Weight,Height
Male, 55, 82, 180
Female, 34,55,167
Female,44,67,182
Male,81,73,175
Male,44,34,87,185
"""
buffer = StringIO(my_string)
reader = csv.reader(buffer, skipinitialspace=True)
with open('string2csv.csv', 'w') as out_file:
writer = csv.writer(out_file)
writer.writerows(reader)
string2csv.csv 文件的内容:
Gender,Age,Weight,Height
Male,55,82,180
Female,34,55,167
Female,44,67,182
Male,81,73,175
Male,44,34,87,185
注意事项
- 由于输入字符串在逗号后有空格(换句话说,条目前有初始空格),我使用
skipinitialspace=True
参数去除这些空格。 - 通过使用
writerows
(复数)而不是writerow
(单数),我可以写更少的代码
第二种方法:分割线
如果您不想使用 StringIO,那么我们可以拆分行,将它们输入 csv.reader
并获得相同的结果:
my_string = """
Gender,Age,Weight,Height
Male, 55, 82, 180
Female, 34,55,167
Female,44,67,182
Male,81,73,175
Male,44,34,87,185
"""
reader = csv.reader(my_string.splitlines(), skipinitialspace=True)
with open('string2csv.csv', 'w') as out_file:
writer = csv.writer(out_file)
writer.writerows(reader)
关于python - 来自字符串输出的 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42834861/