最近在stackoverflow的帮助下,我开始知道如何使用python匹配文本文件现在我面临着一些相同代码的小问题......它执行以下任务
程序输入是两个文本文件 档案1
C1orf159
FAM79A
IGFBP2
RNF25
.
.
.
.
文件2
ACVR2B
CACNA1A
RNF25
IGF2
.
.
.
我编写了一个python脚本来提取这两个文件之间的常用词,如下所示
file1=open("f1.txt","r")
file2=open("f2.txt","r")
file3=open("overlap.txt","w")
list1=file1.readlines()
list2=file2.readlines()
for line1 in list1:
for line2 in list2:
if line1.strip() in line2.strip():
print line2
file3.write(line2)
这给出如下结果
RNF25
IGF2
.
.
.
但是在这个输出中有一个问题第二个词IGF2在file1中没有...脚本正在将文件1中的IGFBP2与IFG2匹配。意味着它正在寻找模式......我不想要这个我希望完全匹配两个文件..
任何人都可以帮助修改我的脚本以获得两个文件之间的完全匹配...
由于 镍
答案 0 :(得分:5)
您在寻找两个文件的交集吗?这是
s1 = set(open("f1.txt", "r"))
s2 = set(open("f2.txt", "r"))
for ln in s1 & s2:
file3.write(ln)
答案 1 :(得分:2)
你想要line1.strip() == line2.strip()
。在这种情况下,in
将匹配子字符串。你听到完全符合的匹配。