我有两个文本文件,一个包含标识符列表,另一个包含更多标识符列表,以及我想要的其他一些信息。我想要做的是比较文件 1 和 2 中的标识符,如果它们匹配,则将文件 2 中的行写入新文件文件 3。
这是我所拥有的(这有点奇怪,因为我进入了列表并且我在编程方面从来没有那么远):
def identify(MOPED_Prot, Swiss_Prot, MOPED_to_Swiss):
Swiss = open(Swiss_Prot, 'r')
M = open(M_Prot, 'r')
output = open(M_to_Swiss, 'wt')
Swissids = []
ids = []
for line in M.readlines():
ids.append(line[:5])
for line in Swiss.readlines():
Swissids.append(line)
while set(ids)& set(Swissids):
output.write(#line? Not sure what goes here + "\n")
我确实得到了代码,将“Swiss”中的一行写入每个交叉点的新文件中,代码与此类似,但它只重复了一行。老实说,结局让我感到困惑。
编辑:根据要求,这是文件的样子
文件 1:
B4E035
P23946
O00376
D6RGF3
B2RDK6
Q12999
Q8TDD2
B2RDC9
C9JL66
Q9NZQ9
文件 2:
P31946 1433B_HUMAN YWHAB
P62258 1433E_HUMAN YWHAE
Q04917 1433F_HUMAN YWHAH YWHA1
P61981 1433G_HUMAN YWHAG
P31947 1433S_HUMAN SFN HME1
如果第一列中的任何标识符匹配(它们都是 6 个字符的长度),则文件 3 应输出文件 2 中的行