La raison pourquoi vous avez toujours eu True
a déjà été donné, donc je vais en offrir une autre suggestion:
Si votre fichier n'est pas trop grand, vous pouvez le lire en une chaîne de caractères, et l'utiliser (plus facile et souvent plus rapide que la lecture et de vérifier ligne par ligne):
if 'blabla' in open('example.txt').read():
print "true"
Une autre astuce: vous pouvez atténuer les éventuels problèmes de mémoire en utilisant mmap.mmap()
de créer une "chaîne comme" objet qui utilise le fichier sous-jacent (au lieu de lire tout le fichier en mémoire):
import mmap
f = open('example.txt')
s = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
if s.find('blabla') != -1:
print 'true'
REMARQUE: en python 3, mmaps se comportent comme des bytearray
des objets plutôt que des chaînes de caractères, de sorte que la sous-suite vous recherchez avec find()
a un bytes
objet plutôt qu'une chaîne de caractères, par exemple. s.find(b'blabla')