True
Ya se ha dado la razón por la que siempre recibiste , así que solo ofreceré otra sugerencia:
Si su archivo no es demasiado grande, puede leerlo en una cadena y simplemente usarlo (más fácil y a menudo más rápido que leer y verificar línea por línea):
with open('example.txt') as f:
if 'blabla' in f.read():
print("true")
Otro truco: puede aliviar los posibles problemas de memoria mediante la mmap.mmap()
creación de un objeto "similar a una cadena" que utiliza el archivo subyacente (en lugar de leer todo el archivo en la memoria):
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')
NOTA: en python 3, los mmaps se comportan como bytearray
objetos en lugar de cadenas, por lo que la subsecuencia que busca find()
debe ser un bytes
objeto en lugar de una cadena, por ejemplo. 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')
También puede usar expresiones regulares en mmap
, por ejemplo, búsqueda sin distinción entre mayúsculas y minúsculas:if re.search(br'(?i)blabla', s):