1.先看文件1
文件1: 1.txt
A0A024FLK4 Q6ZFI6 0 0 0 70 0 0 359 378
A0A024FLK4 Q9AX15 112 0 0 0 0 647 0 673
A0A024FLK4 A0A0P0XZ15 56 0 0 0 92 0 95 156
A0A024FLK5 Q7Y1I9 0 0 0 148 0 0 241 325
A0A024FLK5 Q7Y120 0 0 0 148 0 0 241 324
A0A024FLK5 Q7Y121 0 0 0 148 0 0 241 326
A0A024FLK5 Q7Y122 0 0 0 148 0 0 241 327
A0A024FLK5 Q7Y123 0 0 0 148 0 0 241 328
文件2: 2.txt
A0A024FLK4
A0A024FLK3
A0A024FLK5
脚本1:a.py
d={}
with open("1.txt","r") as fn1:for i in fn1:i=i.strip().split()d["_".join(i[0:2])]=i[:]with open("2.txt","r") as fn2:for j in fn2:j=j.strip().split()for i in d.keys():i1 = i.strip().split("_")[0]if j[0] in i1:print("\t".join(d[i]))
解析:大概意思是,用2.txt中的第一列来提取1.txt中的行,此时要构建一个字典,但是,问题来了,1.txt构建字典的话,无法正常构建,因为1.txt的第一列中存在多数重复的名字,此时需要把第一列和第二列合并来作为字典的key,如果第一列和第二列合并后还有重复的话,可以在2.txt的第一列再增加一列序号,目的就是保证字典的key是唯一的。