解析令牌中的行捕获值

时间:2012-07-11 22:02:23

标签: python parsing

我的目标是在纯文本文件中找到具有id的行,然后获取该id后面的令牌的值。在我的文件中有100条与此类似的行:(第5列始终是我搜索的id,第6列是我需要抓取/存储两个字母之间的数字的标记。

例如,如果我正在寻找id Q9C0F0,我想得到/存储值1136(在2个字母-K和N之间)。然后我想使用该数字在输出文件上打印。提前致谢

COAAD ASXL3 Missense_Mutation KFGM-AA-3672 Q9C0F0 K1136N

COAAD ASXL3 Missense_Mutation KFGM-AA-3693 Q9C0F0 A1544E

COAAD ASXL3 Missense_Mutation KFGM-AA-A010 Q9C0F0 F353S

COAAD ASXL3 Missense_Mutation KFGM-AA-A010 Q9C0F0 L157I

COAAD ASXL3 Missense_Mutation KFGM-AG-3890 Q9C0F0 L1324Q

COAAD ASXL3 Missense_Mutation KFGM-AG-A002 Q9C0F0 H552N

COAAD ASXL3 Missense_Mutation KFGM-AG-A002 Q9C0F0 K471N

COAAD ASXL3 Missense_Mutation TKFGM-AG-A002 Q9C0F0 L804M

1 个答案:

答案 0 :(得分:0)

这是一个简单的方法,也许它会对你有所帮助,“算法”的核心性取决于输入条件,所以你可能需要改变整数的解析并改变一些条件

with open('file') as f:
    for line in f.readlines():
        l = line.split()
        if l and l[4] == 'Q9C0F0':
            print l[5][1:-1] # or parse int in a more inteligent way