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 に答える