我使用python打开一个文件,以查找打开的文件中是否存在预定义的单词集。我在列表中选择了预定义的单词集,并打开了必须测试的文件。现在是否有任何方法可以在python而不是行中提取单词。多数民众赞成使我的工作更容易。
答案 0 :(得分:7)
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
答案 1 :(得分:1)
你可以做一些事情
查看文件的pydocs - http://docs.python.org/release/2.5.2/lib/bltin-file-objects.html
答案 2 :(得分:1)
此代码将显示文件中存在哪些单词,因为单词完全匹配,并且不在标点符号或其他字符之前或后面,并且具有相同的大小写。通过一些微小的调整,可以使代码更加宽容。
words = set(['hello', 'world', 'testing'])
f = open('testfile.txt', 'rb')
data = set(f.read().split())
print words.intersection(data)