/Anonimizzato27994Utente anonimizzato18 mar 2020, 16:51Ho 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?
Andrea QuagliaMolto attivoIscritto dagiu, 2017Messaggi61918 mar 2020, 19:01Non 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)
/Anonimizzato27994Utente anonimizzato19 mar 2020, 09:09Non è 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
/Anonimizzato27994Utente anonimizzato19 mar 2020, 10:27Per 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)
Andrea QuagliaMolto attivoIscritto dagiu, 2017Messaggi61919 mar 2020, 19:07L'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.