发出Python代码匹配文件

时间:2011-12-19 16:58:02

标签: python

最近在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匹配。意味着它正在寻找模式......我不想要这个我希望完全匹配两个文件..

任何人都可以帮助修改我的脚本以获得两个文件之间的完全匹配...

由于 镍

2 个答案:

答案 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将匹配子字符串。你听到完全符合的匹配。