我需要在文本文件中插入唯一的单词。每行一个单词,该单词在整个文件中将是唯一的。
每当一个新单词变为" word"然后我需要一种方法来检查它是否存在于文件中。如果它存在,那么它将再次选择另一个词。它将再次检查它是否存在,并将这样做,直到一个独特的单词出现。
我该怎么做?
顺便说一句,我在做:
newword = "learn"
f = open('wordlist.txt')
s = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
while s.find(newword) != -1:
return newword
else:
return newword
提前致谢。
答案 0 :(得分:1)
假设文件不是太大,您可以将其全部读取到内存中,并检查该单词是否存在:
def word_in_file(filename, word):
with open(filename) as f:
words = f.read().splitlines()
return word in words
如果您要多次执行此操作,最好保留words
列表,并将添加到文件中的每个单词追加到其中,而不是多次读取。
此外,从set
创建words
可以缩短搜索时间,如果您要向文件添加多个字,则可能值得“努力”。