Trovare una stringa in file di testo

di il
4 risposte

Trovare una stringa in file di testo

Ho un problema nel agire su un file di testo.

Praticamente il file di teato è composto da diverse righe e la mia intenzione è quella di stampare la riga solo se al suo interno è presente una determinata stringa

Per ora ho:
Aperto il file
a=open('prova.txt')
Ho assegnato alla variabile il metodo readline
b=a.readline()
Poi con questa variabile ho usato la funzione find passandogli come argomento la stringa da cercare
c=b.find('aa')
A questo punto se stampo c mi stampa il numero che identifica la posizione della stringa 'aa'

Come potrei risolvere?

4 Risposte

  • Re: Trovare una stringa in file di testo

    Non ho capito quale sia il problema, comunque: se find ti ritorna un valore > 0 allora quella riga è da stampare, quindi usi una banale if:
    if c >= 0:
    	print(b)
    
  • Re: Trovare una stringa in file di testo

    Non è proprio cosi. Avevo già provato questa soluzione inserendo la condizione if in un ciclo for e praticamente mi stampa sempre la stessa riga non iterando sul resto delle righe del file
  • Re: Trovare una stringa in file di testo

    Per ora ho risolto cosi
    apriFILE = open('prova','r')
    for i in range(2000):
       x=apriFILE.readline()
       y=x.find('pippo')
       if y>1:
           print(x)
    
  • Re: Trovare una stringa in file di testo

    L'iterazione sui file di testo non si fa in quel modo, ma è meglio questo:
    with open('prova', 'r') as apriFILE:
    	for x in apriFILE:
    		y=x.find('pippo')
       		if y>1:
           			print(x)
    Al termine il file viene chiuso automaticamente.
Devi accedere o registrarti per scrivere nel forum
4 risposte