擅长:python、mysql、java
<p>您可以一次读取一个字符的文件,并将换行符更改为空格。那么,这只是一个列出通缉犯名单的问题</p>
<pre><code>def find_words(text, fileobj):
i = 0
while True:
c = fileobj.read(1)
if not c:
break
if c == "\n": # python combines \r\n
c = " "
if c != text[i]:
i = 0
if c == text[i]:
i += 1
if i == len(text):
return True
return False
</code></pre>
<p>如果您想对空格和大小写敏感度更开放一些,可以在比较之前删除所有空格和小写</p>
<pre><code>import re
import itertools
from string import whitespace
def find_words(text, fileobj):
chars = list(itertools.chain.from_iterable(re.split(r"\s+", text.lower())))
i = 0
while True:
c = fileobj.read(1)
if not c:
break
c = c.lower()
if c in whitespace:
continue
if c != chars[i]:
i = 0
if c == chars[i]:
i += 1
if i == len(chars):
return True
return False
</code></pre>