Python 将一个文件中的行替换为另一个文件中的键

Python 将一个文件中的行替换为另一个文件中的键,python,Python,我一直试图用另一个file2.txt中的键替换file1.txt中的行。我有两个以下格式的文本文件: file1.txt SNP_A-43344 rs176444 SNP_A-53343 rs2345 SNP_A-57574 rs89902222 . . . . . . SNP_A-47474 rs474784

我一直试图用另一个file2.txt中的键替换file1.txt中的行。我有两个以下格式的文本文件:

file1.txt

       SNP_A-43344   rs176444
       SNP_A-53343   rs2345
       SNP_A-57574   rs89902222
          .          .
          .          .
          .          .
       SNP_A-47474    rs474784
          .          .
          .          .
          .          .
和file2.txt

  rs176444
  rs89902222
  rs474784
    .
    .
    .
我想用它们的SNP号替换file2.txt的内容,这样file2.txt看起来像这样:

        SNP_A-43344 
        SNP_A-57574
        SNP_A-47474 
            .
            .
            .
我在网上看到过一些例子,但我想不出来。我已经修改下面的代码好几个小时了,但我只是在修改原始文件中的条目

       import re
       with open('file1.txt','r') as f:
            data1=dict(line.split() for line in f)
       with open('file2.txt') as f:
            data2=f.read()
       data2=re.sub(pattern,SNPnumber,data2)
我一直在玩re.sub中的模式和SNPnumber条目。这是正确的方法还是我完全错了。我是python新手,如果您能给我一些建议或指导我查找源代码,我将不胜感激。谢谢

试试这个:

my_dict = {}
with open("file1.txt") as f:
    for line in f:
        value, key = line.strip().split()    # taking rs... as key and SNP-.. as value
        my_dict[key] = value

rs_values = open("file2.txt").readlines()

with open("file2.txt", "w") as f:
    for x in rs_values:
        f.write(my_dict[x.strip()] + "\n")

SNP-编号在file1.txt中是唯一的吗?是的,SNP编号是唯一的。。。。也是唯一的???是的,rs号码也是唯一的。我得到了一个错误:f.write(我的字典[x]+“\n”)KeyError:'SNP\U A-1819635\trs17642438\n'你能打印我字典的内容并查看键值对吗。我收到诸如“SNP_A-1987912”,“rs911114”,“SNP_A-2226006”,“rs458744”,“SNP_A-8341206”等条目,我道歉。代码确实有效。我输入了错误的文件。非常感谢。