我知道如何在两行之间解析,当开始的“目标词”和结束的“目标词”不同时
例如,如果我想在X和Y之间解析:
parse = False
for line in open(sys.argv[1]):
if Y in line:
parse = False
if parse:
print line
if X in line:
parse = True
我被困在一个稍微不同的问题上,我想解析的词是同一个词。i、 e.在这个例子中,有4个不同的同系物组,我想提取每个同系物组中的人/鼠对,所以我想打开这个文件:
1:_HomoloGene:_141209.Gene_conserved_in_Mammals
LOC102724657 Homo_sapiens
Gm12569 Mus_musculus
2:_HomoloGene:_141208.Gene_conserved_in_Euarchontoglires
LOC102724737 Homo_sapiens
LOC102636216 Mus_musculus
3:_HomoloGene:_141152.Gene_conserved_in_Euarchontoglires
LOC728763 Homo_sapiens
E030010N07Rik Mus_musculus
E030010N09Rik Mus_musculus
E030010N010Rik Mus_musculus
E030010N08Rik Mus_musculus
LOC102551034 Rattus_norvegicus
4:_HomoloGene:_141054.Gene_conserved_in_Boreoeutheria
LOC102723572 Homo_sapiens
LOC102157295 Canis_lupus_familiaris
LOC102633228 Mus_musculus
像这样比较智人和小家鼠:
Homo_sapiens Mus_musculus
LOC102724657 Gm12569
LOC102724737 LOC102636216
LOC728763 E030010N07Rik
LOC728763 E030010N09Rik
LOC728763 E030010N010Rik
LOC728763 E030010N08Rik
LOC102723572 LOC102633228
我没有成功的代码可以展示,这是我尝试过的一个例子(我也尝试过正则表达式和拆分单词“HomoloGene”的行):
import sys
ListOfLines = open(sys.argv[1])
for line in ListOfLines:
if "HomoloGene" in line:
if "HomoloGene" in ListOfLines.next():
print line
print "**"
else:
print ListOfLines.next()
谢谢
这是一个由两部分组成的问题。首先将同源组extact到一个字典中,然后遍历这些组并打印成对的组。你知道吗
希望这有帮助。你知道吗
下面的注释代码在您的示例中生成结果。要理解它,您可能需要阅读以下内容:
代码:
相关问题 更多 >
编程相关推荐