Python 将一个文件中的行替换为另一个文件中的键
我一直试图用另一个file2.txt中的键替换file1.txt中的行。我有两个以下格式的文本文件: file1.txtPython 将一个文件中的行替换为另一个文件中的键,python,Python,我一直试图用另一个file2.txt中的键替换file1.txt中的行。我有两个以下格式的文本文件: file1.txt SNP_A-43344 rs176444 SNP_A-53343 rs2345 SNP_A-57574 rs89902222 . . . . . . SNP_A-47474 rs474784
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”等条目,我道歉。代码确实有效。我输入了错误的文件。非常感谢。