繁体   English   中英

通过另一个文件中的键替换一个文件中的行-python

[英]Replacing lines in one file by keys in another file-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

  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中的pattern和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")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM