帮助将输出写入另一个文件:

时间:2010-09-12 23:46:51

标签: python

嗨,这是我的程序:

with open('C://avy.txt', "rtU") as f:
    columns = f.readline().strip().split(" ")
    numRows = 0
    sums = [0] * len(columns)

    for line in f:
        # Skip empty lines
        if not line.strip():
            continue

        values = line.split(" ")
        for i in xrange(len(values)):
            sums[i] += int(values[i])
        numRows += 1

    for index, summedRowValue in enumerate(sums):
        print columns[index], 1.0 * summedRowValue / numRows

我想修改它,以便将输出写入名为Finished的文件。我重写时不断出错。有人可以帮忙吗?

由于

2 个答案:

答案 0 :(得分:1)

更改现在显示的代码段:

 for index, summedRowValue in enumerate(sums):
        print columns[index], 1.0 * summedRowValue / numRows

来制作它,而不是:

 with open('Finished', 'w') as ouf:
     for index, summedRowValue in enumerate(sums):
         print>>ouf, columns[index], 1.0 * summedRowValue / numRows

如您所见,这非常简单:您只需要将循环嵌套在另一个with语句中(以确保正确打开和关闭输出文件),并将裸print更改为{ {1}}指示print>>ouf,使用开放文件对象print而不是标准输出。

答案 1 :(得分:0)

out = open('Finished', 'w')
for index, summedRowValue in enumerate(sums):
    out.write('%s %f\n' % (columns[index], 1.0 * summedRowValue / numRows))