-3

我有一个文件。我希望解析文件。例如:输入文件是:

2372198_19      AT4G23820.1|PACid:19648287     
2372198_19      AT5G41870.1|PACid:19672701     
2372198_19      AT3G62110.1|PACid:19660795    
2372198_19      AT4G33440.1|PACid:19647232      
2372198_19      AT3G16850.1|PACid:19660978      
2372198_19      AT3G61490.3|PACid:19663321      
2372198_19      AT3G61490.2|PACid:19663320      
2373893_1       AT4G23160.1|PACid:19648072      
2373893_1       ATMG00810.1|PACid:19643614      
2367273_1       AT1G69180.1|PACid:19652993     
2367273_1       AT2G26580.2|PACid:19640069     
2367273_1       AT2G26580.1|PACid:19640068     
2367273_1       AT1G08465.1|PACid:19651039     
2367273_1       AT2G45190.1|PACid:19639922     
2367273_1       AT1G23420.1|PACid:19656327      
2367273_1       AT4G00180.2|PACid:19644521      
2367273_1       AT4G00180.1|PACid:19644520      
2371695_1       AT1G70140.1|PACid:19656286      
2371695_1       AT1G70140.1|PACid:19656286     
2371695_1       AT1G59910.1|PACid:19656798      
2371695_1       AT1G24150.1|PACid:19657122      
2371695_1       AT1G24150.1|PACid:19657122      
2371695_1       AT3G05470.1|PACid:19661743      
2371695_1       AT5G54650.2|PACid:19672246      
2371695_1       AT5G54650.1|PACid:19672245     
2297048_8       AT4G39650.1|PACid:19647398      
2297048_8       AT4G39640.2|PACid:19648663     
2364073_4       AT2G01970.1|PACid:19643231     
2364073_4       AT5G37310.1|PACid:19668336     
2364073_4       AT1G08350.2|PACid:19655122      
2364073_4       AT1G08350.1|PACid:19655123      
2364073_4       AT1G10950.1|PACid:19657004      
2364073_4       AT3G13772.1|PACid:19663994      
2373583_3       AT2G04220.1|PACid:19638128      
2373583_3       AT4G12690.2|PACid:19644712      
2373583_3       AT4G12690.1|PACid:19644711     
2373583_3       AT5G48270.1|PACid:19668704      
2373583_3       AT3G13229.1|PACid:19660988     
2286036_1       AT5G12890.1|PACid:19667274      
2286036_1       AT4G34131.1|PACid:19648916    
2286036_1       AT1G01420.1|PACid:19652756      
2286036_1       AT2G15480.2|PACid:19641746  

现在我希望以这样的方式解析它,我只打印每个数字的第一行,有些像这样。. 我的输出文件:

2372198_19      AT4G23820.1|PACid:19648287     
2373893_1       AT4G23160.1|PACid:19648072     
2297048_8       AT4G39650.1|PACid:19647398     
2364073_4       AT2G01970.1|PACid:19643231      
2373583_3       AT2G04220.1|PACid:19638128      
2286036_1       AT5G12890.1|PACid:19667274   
4

2 回答 2

2

您可以使用itertools.groupby()

with open("input") as f:
    for unused_key, it in itertools.groupby(f, lambda s: s.partition("_")[0]):
        print(next(it))
于 2013-08-02T10:07:04.670 回答
0

尝试这个:

old_number = ''
for line in file:
    number = line.split('_')[0]
    if number == old_number:
        continue
    else:
        print line
        old_number = number
于 2013-08-02T10:03:53.703 回答