0

好的,所以我试图将我的字符串的所有元素放在 csv 文件的一个单元格中。我的代码如下:

import csv

col = 2

f = csv.writer(open("test.csv", "wb"))

while col <= 6:
    values = []

    for line in open("file.data"):
        elements = line.strip().split(',')
        values.append(int(elements[col]))

    col += 2
    csum = sum(values)

    f.writerow(str(csum))

基本上我想在 excel(csv) 文件的单个单元格中得到我的总和。我得到的是这样的:

4 |5 | 2| 1|

条形分隔单元格。

4

1 回答 1

4

writerow()期待一个可迭代的字符串,其中该可迭代的每个项目都将放在单独的列中。例如,您可能会使用一个字符串列表,例如f.writerow(['foo', 'bar'])放在foo第一列和bar第二列中。

如果你只是传递一个字符串f.writerow('4521'),那么你最终会4在第一列,5在第二列,依此类推。发生这种情况是因为如上所述, csv 模块将遍历参数,并且当您遍历字符串时,您会分别获得每个字符。

要解决此问题,只需将值包装在列表(或元组)中:

f.writerow([str(csum)])
于 2013-09-23T21:15:30.173 回答