你一直得到的原因
True已经给出,因此我只提供另一个建议:
如果你的文件不是太大,则可以将其读取为字符串,然后使用它(比读取和检查每行更容易,并且通常更快):
with open('example.txt') as f: if 'blabla' in f.read(): print("true")另一个技巧:通过使用
mmap.mmap()创建使用基础文件的“字符串状”对象(而不是读取内存中的整个文件),可以减轻可能的内存问题:
import mmapwith open('example.txt') as f: s = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) if s.find('blabla') != -1: print('true')注意:在python 3中,mmap的行为类似于bytearray对象而不是字符串,因此,例如,查找的子序列也
find()必须是bytes对象而不是字符串。
s.find(b'blabla'):
#!/usr/bin/env python3import mmapwith open('example.txt', 'rb', 0) as file, mmap.mmap(file.fileno(), 0, access=mmap.ACCESS_READ) as s: if s.find(b'blabla') != -1: print('true')你还可以在mmap不区分大小写的搜索中使用正则表达式:
if re.search(br'(?i)blabla', s)



