0

我有一系列具有不同名称的文件(格式如下所示),例如: 100107_902988_6188DAAXX_s_6.sorted 100107_902988_6188DAAXX_s_7.sorted (如果您注意到文件名中只有第 6 部分和第 7 部分不同)

在此处输入图像描述

我想要所有这些文件的最后一列的平均值(第 8 列以 15 开头)!如果可能,在文本文件中,例如:100107_902988_6188DAAXX_s_6.sorted:15(或平均值) 100107_902988_6188DAAXX_s_7.sorted:17

我尝试使用 data.split 命令,然后使用 e[7] 列,但我得到了每行的平均值!!!!比如 3 for 15(我假设我的脚本是 1+5/2) 我想知道是否有人可以帮助我提前谢谢!

4

1 回答 1

1

未经测试,但这样的事情应该可以解决问题:

import glob

def avg(lst):
    return float(sum(lst))/len(lst)

all_numbers = []
for filename in glob.glob("100107_902988_6188DAAXX_s_*.sorted"):
    numbers = []
    with open(filename, "r") as file:
        for line in file:
            numbers.append(int(line.split()[7]))
    print "{0}: {1:.2f}".format(filename, avg(numbers))
    all_numbers.extend(numbers)
print "Total average: {0:.2f}".format(avg(all_numbers))
于 2011-06-24T13:03:34.740 回答