PYTHON interagire con file e stampare solo alcuni dati di esso

di il
4 risposte

PYTHON interagire con file e stampare solo alcuni dati di esso

Buonasera
Vorrei chiedervi come posso risolvere un problema:
ho il mio codice in python e ho un file con il quale interagire. Devo come prima cosa leggere il file e stamparne tutti gli elementi (fatto), poi trasformare le stringhe in interi (fatto) e infine, tramite una funzione esterna, devo stampare solo gli elementi che stanno in un certo range, range che viene inserito nel main quando chiamo la funzione. Non so bene come spiegarmi perché non ho neanche ben capito cosa devo fare, purtroppo.
Se qualcuno ha capito e ha voglia di aiutarmi, lo ringrazio in anticipo.
Buona serata a chi come me non dorme

4 Risposte

  • Re: PYTHON interagire con file e stampare solo alcuni dati di esso

    Salve,
    se il tuo problema è solo stampare i numeri che rispettino un controllo, non dovrebbe essere troppo difficile...
    Un esempio spiccio sarebbe:
    
    min = int(input('Minimo: ')) # Richiedo il valore minimo
    max = int(input('Massimo: ')) # Richiedo il valore massimo
    
    # Mettiamo che il tuo file sia "yourfile.txt" e che abbia i numeri salvati in questo modo: "1,2,3,4,5,..."
    # Apro il file
    with open('yourfile.txt', 'r') as file:
    	# Con un ciclo analizzo tutti gli elementi all'interno del file
    	for numero in file.read().split(','):
    		# Con un if controllo che il numero rispetti il range
    		if numero>min and numero<max:
    			print(numero)
    		# La condizione else non è necessaria se non si desidera stampare nulla qual ora il numero non rispetti le condizioni
    
    NB: avvisami se non era questa la soluzione che cercavi, grazie.
  • Re: PYTHON interagire con file e stampare solo alcuni dati di esso

    Ciao!
    Intanto grazie mille per la risposta. Allora mi hai aiutata tantissimo, scusa se ci ho messo tanto a rispondere ma prima volevo provare a farcela con quello che mi hai detto, e ci sono quasi diciamo però sono ferma a questo: nel mio file i numeri al momento sono delle stringhe, e prima di fare il mio for io devo trasformarlo in intero facendo numeri = int(numeri), credo, però così facendo come fa a capire che io mi riferisco a quei numeri e non ad altri? cioè qual è il passaggio che mi manca?
    yourfile.txt: '1', 'ciao', '2', 'ehi', '3', 'eila'
    e così via... grazie
  • Re: PYTHON interagire con file e stampare solo alcuni dati di esso

    Ciao,
    perdona la mia assenza.

    Il fatto che fai il casting da stringa ad intero ("int()") è corretto, ma il tuo problema credo sia il fatto che non tutte le tue stringhe nel file sono numeri.
    Se così fosse, ci sono due metodi principali:
    1) utilizzo il controllo delle eccezioni try-except
    
    try:
    	numero = int(numero)
    except ValueError:
    	pass #codice eseguito se non è possibile effettuare il casting
    
    2) utilizzo il metodo isnumeric()
    
    if numero.isnumeric():
    	numero = int(numero)
    
    Quindi, il risultato finale sarà:
    
    min = int(input('Minimo: '))
    max = int(input('Massimo: '))
    
    with open('yourfile.txt', 'r') as file:
    	for numero in file.read().split(','):
    		if numero.isnumeric():
    			numero = int(numero)
    			if numero>min and numero<max:
    				print(numero)
    				#inserisci qui le operazioni che desideri eseguire
    
  • Re: PYTHON interagire con file e stampare solo alcuni dati di esso

    Ciao grazie mille scusa se ti rispondo appena ora ma non ho avuto modo di usare il pc. Il costrutto try except è perfetto anche perché lo abbiamo usato a lezione, sono riuscita a risolvere con questo!! Grazie ))))
Devi accedere o registrarti per scrivere nel forum
4 risposte