使用python在另一个文本文件中查找一个文本文件中的短语

时间:2015-07-08 21:06:52

标签: python

我有一个文件,它是一个短语列表,每行一个短语。 另一个文件没有以任何方式划分,它只是一个巨大的文本文本文件。我想在第二个文件中搜索短语,如果找到它们,则打印短语。这是我到目前为止的代码。

f = open("phrase.txt", "r")
g = open("text.txt", "r")

for line in f:
    search=line.lower()


for word in g:
    if search in word:
        print(search)

但这并不是为我打印任何东西。

编辑:我将代码更改为:

f = open('phrase.txt').readlines()
f = [f.strip('\n').lower() for f in f]
g = open('text.txt').read()
for phrase in f:
    if phrase in g:
        print (phrase)

现在我得到匹配的短语。但是有些短语有破折号( - )和后面的更多字母,即使短划线前的短语出现在text.txt中,它们也不会被程序拾取。有什么方法可以改变这个吗?

2 个答案:

答案 0 :(得分:1)

如果你想搜索文件中的每个短语,你必须嵌套循环,目前,你只是在搜索最后一个短语

phrases = open("phrase.txt").readLines()

for phrase in phrases:
    search= phrase.lower()
    words = open("text.txt", "r")
    for word in words:
        if search in word:
            print(search)
    words.close()

然而,现在情况开始看起来很有趣,因为你问的是一个单词是否在单词中,这似乎不对。所以

phrases = open("phrase.txt").readLines()
words = open("text.txt").read()

for phrase in phrases:
    all_words_found = True
    phrase_words = phrase.lower().split(" ")
    for word in phrase_words:
        if word not in words:
            all_words_found = False
            break

    if all_words_found:
        print phrase

这就是你想要的我相信

答案 1 :(得分:0)

f = open('phrase.txt').readlines()
f = [f.strip('\n').lower() for f in f]
g = open('text.txt').read()
words = g.split()

for phrase in f:
    search_words = phrase.split()
    for word in search_words:
        if word in words:
            print phrase