File.txt

something in 1 line
2nd line
3rd line
my_diagram with other data
some other lines
one more line
with open('file.txt', 'r') as fp:
    ad = fp.readlines()
    for lines in ad:
        if lines.__contains__('my_diagram'):
            print('Got it')
        else:
            print('diagram not found')

Cada vez que lee una línea que no tiene la cadena, imprime "diagrama no encontrado". Solo quiero imprimir si no se encuentra en ninguna parte del archivo. ¿Cómo puedo hacer eso?

0
KLAS R 15 mar. 2021 a las 09:45

2 respuestas

La mejor respuesta

Creo que puede agregar solo una declaración, si las líneas contienen mi palabra de diagrama, entonces significa que el archivo contiene mi palabra de diagrama.

Entonces hagámoslo así:

found = False
with open('file.txt', 'r') as fp:
   for lines in ad:
      if lines.contains('my diagram'):
        print("Got it")
        found = True
 if Found == False:
    print("Not found")
0
Reşat Karaçöl 15 mar. 2021 a las 07:05

Puede leer el archivo whlde a la vez y probar la condición solo una vez:

with open('file.txt', 'r') as fp:
    if "my_diagram" in " ".join(fp.readlines()):
        print('Got it')
    else:
        print('diagram not found')
0
Alka 15 mar. 2021 a las 06:54