gpt4 book ai didi

python - csv: writer.writerows() 拆分我的字符串输入

转载 作者:太空狗 更新时间:2023-10-29 21:54:46 33 4
gpt4 key购买 nike

我有一个要写入 csv 文件的字符串列表。列表 list_results 看起来像

['False, 60, 40 ', 'True, 70, 30, ']

所以,我会尝试这样的事情:

with open('example1.csv', 'w') as result:
writer = csv.writer(result, delimiter=",")
writer.writerow( ('Correct?', 'Successes', 'Failures') )
writer.writerows(list_results)

不幸的是,数据没有写入三列。我发现:

['Correct?', 'Successes', 'Failures']  
['F', 'a', 'l', 's', 'e', ',', ' ', '6', '0', ',', ' ', '4', '0', ' ']
['T', 'r', 'u', 'e', ',', ' ', '7', '0', ',', ' ', '3', '0', ',', ' ']

如何适本地格式化此行为以获取

['Correct?', 'Successes', 'Failures']  
['False', 60, 40]
['True', 70, 30]

最好采用 %s %d %d 格式?

最佳答案

您正在使用结尾带有 swriter.writerows()。该方法需要一个列表列表,但您传入了一个字符串列表。 writerows() 方法本质上是这样做的:

def writerows(self, rows):
for row in rows:
self.writerow(row)

其中每一行必须是一系列列。字符串是单个字符的序列,因此这就是您所写的内容:由您选择的定界符分隔的单个字符。

你需要将你的字符串拆分成列,不要自己包含逗号,包含那些是 writer 对象的工作:

with open('example1.csv', 'w') as result:
writer = csv.writer(result, delimiter=",")
writer.writerow(('Correct?', 'Successes', 'Failures'))
for row in list_results:
columns = [c.strip() for c in row.strip(', ').split(',')]
writer.writerow(columns)

或使用生成器表达式,以便您可以继续使用 writerows():

with open('example1.csv', 'w') as result:
writer = csv.writer(result, delimiter=",")
writer.writerow(('Correct?', 'Successes', 'Failures'))
writer.writerows([c.strip() for c in r.strip(', ').split(',')]
for r in list_results)

演示:

>>> import csv
>>> list_results = ['False, 60, 40 ', 'True, 70, 30, ']
>>> import csv
>>> import sys
>>> list_results = ['False, 60, 40 ', 'True, 70, 30, ']
>>> writer = csv.writer(sys.stdout)
>>> writer.writerow(('Correct?', 'Successes', 'Failures'))
Correct?,Successes,Failures
>>> for row in list_results:
... columns = [c.strip() for c in row.strip(', ').split(',')]
... writer.writerow(columns)
...
False,60,40
True,70,30
>>> writer.writerows([c.strip() for c in r.strip(', ').split(',')]
... for r in list_results)
False,60,40
True,70,30

关于python - csv: writer.writerows() 拆分我的字符串输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34285154/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com