python处理文件

Python014

python处理文件,第1张

这种东西最好都用numpy这样的统计包来搞。不过看来是比较简单,行数也不多,就算了。看在精氨酸的份上写一下。

import re,math

patch = {}

QA = {}

num = {}

 

with open("test.txt") as A:

    for eachline in A:

        eachline = eachline.rstrip()

        m = re.search("^(PATCH\s+\d+).*?Q*A\:(.*?)\s",eachline)

        if m :

            name = m.group(1)

            QA[name] = float(m.group(2))

            patch[name] = 0

            num[name] = 0

        else:

            patch[name]+=math.log(float(eachline.split(" ")[1]),2)

            num[name]+=1

        

result = {i:j/num[i]+QA[i] for i,j in patch.items()}

for i,j in sorted(result.items(),key = lambda d:d[1], reverse=True):

    print i,j

    

A.close()

推荐你去找一个pandas,scipy,pandas,matplotlib库来做,网上有书籍,《利用Python进行数据分析》,基本就是介绍这样内容的,pandas去做数据采集、清洗等都不错,然后利用上面的例子慢慢实现你上面的方法。