从文件中提取单词
问题内容:
我使用python打开文件,以查找打开的文件中是否存在预定义的单词集。我将一组预定义的单词放在列表中,然后打开了要测试的文件。现在有什么方法可以提取python中的单词而不是行。那使我的工作更加轻松。
问题答案:
import re
def get_words_from_string(s):
return set(re.findall(re.compile('\w+'), s.lower()))
def get_words_from_file(fname):
with open(fname, 'rb') as inf:
return get_words_from_string(inf.read())
def all_words(needle, haystack):
return set(needle).issubset(set(haystack))
def any_words(needle, haystack):
return set(needle).intersection(set(haystack))
search_words = get_words_from_string("This is my test")
find_in = get_words_from_string("If this were my test, I is passing")
print any_words(search_words, find_in)
print all_words(search_words, find_in)
退货
set(['this', 'test', 'is', 'my'])
True