Her zaman Truesahip olmanızın nedeni zaten verilmiştir, bu yüzden sadece başka bir öneri sunacağım:
Dosyanız çok büyük değilse, onu bir dizede okuyabilir ve sadece bunu kullanabilirsiniz (satır başına satır okuma ve kontrol etmekten daha kolay ve genellikle daha hızlı):
with open('example.txt') as f:
if 'blabla' in f.read():
print("true")
Başka bir hile: mmap.mmap()temel dosya kullanan bir "dize benzeri" nesne oluşturmak için kullanarak olası bellek sorunlarını hafifletebilirsiniz (bellekteki tüm dosyayı okumak yerine):
import mmap
with open('example.txt') as f:
s = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
if s.find('blabla') != -1:
print('true')
NOT: python 3'te, mmaps bytearraydizeler yerine nesneler gibi davranır , bu nedenle aradığınız alt dizinin bir dize yerine find()bir bytesnesne olması gerekir , örn. s.find(b'blabla'):
#!/usr/bin/env python3
import mmap
with 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')
Ayrıca mmap, büyük / küçük harfe duyarlı olmayan aramada düzenli ifadeler de kullanabilirsiniz :if re.search(br'(?i)blabla', s):