




























































































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Questa lezione di informatica si concentra sulla gestione dei file e delle eccezioni in python. Come leggere e scrivere file di testo, elaborare sequenze di dati provenienti da file, gestire errori ed eccezioni, e lavorare con file in formato csv. Include esempi pratici e spiegazioni chiare per comprendere i concetti chiave.
Tipologia: Dispense
1 / 111
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





























































































LEGGERE, ANALIZZARE E SCRIVERE FILE. GESTIRE ERRORI ED ECCEZIONI. This Photo by Unknown Author is licensed under CC BY-SA Capitolo 7
▪ Leggere e scrivere file di testo ▪ Elaborare sequenze di dati provenienti da file ▪ Elaborare file in formato CSV ▪ Generare e gestire errori ed eccezioni In questa unità si apprenderà come scrivere programmi che manipolano i file
▪ I file di testo sono usati molto spesso per memorizzare informazioni o Sono il tipo più ‘portabile’ di file di dati ▪ Esempi di file di testo comprendono o File creati con semplici editor di testo, come Blocco Note di Windows o Codice sorgente in Python o File HTML o File CSV (comma-separated values: valori separati da virgole) o …
▪ Importante, da ricordare: o Quando si apre un file in modalità di lettura, il file deve esistere (ed essere accessibile all’utente), o si verificherà un’ eccezione o L’oggetto file restituito dalla funzione open deve essere memorizzato in una variabile
▪ Per aprire un file per la scrittura, si fornisce il nome del file come primo argomento alla funzione open, e la stringa "w" come secondo argomento: ▪ Se il file di output non esiste ancora, viene creato un nuovo file (inizialmente vuoto) ▪ Se il file di output esiste già, il suo contenuto viene svuotato outfile = open("output.txt", "w")
▪ All’apertura del file, un «cursore» immaginario viene posizionato all’inizio del file ▪ Metodi per leggere una parte del file, partendo dalla posizione del «cursore» o 1 solo carattere: infile.read(1) o N caratteri consecutivi: infile.read(N) o Una riga: infile.readline() oppure for line in infile o L’intero file: infile.readlines() oppure infile.read() ▪ Dopo la lettura, il cursore viene fatto avanzare fino al primo carattere non ancora letto. https://realpython.com/read-write-files-python/
▪ Il «cursore» è inizialmente all’inizio del file ▪ Per leggere una linea (riga) di testo da un file, chiamare il metodo readline() sull’oggetto file: ▪ readline() legge il testo, partendo dalla posizione attuale del cursore, e continua fino a quando non incontra la fine della linea o La fine della linea è identificata dal carattere '\n' o Il carattere di fine linea fa parte della linea e viene quindi memorizzato o Il cursore viene quindi spostato all’inizio della linea successiva line = infile.readline()
▪ Se chiamassimo ulteriormente readline(), verrebbe fornita la stringa vuota "" poiché si è raggiunta la fine del file ▪ 👀 Se il file contenesse una riga vuota, in tal caso readline() restituirebbe una stringa contenente unicamente il carattere newline "\n" Ricorda: Fine del file → input.readline() == '' Riga vuota → input.readline() == '\n'
▪ Si legge ripetutamente una singola riga dal file, finché non raggiungiamo il valore sentinella ▪ Il valore sentinella è la stringa vuota, che viene generata dal metodo readline() dopo aver raggiunto la fine del file line = infile.readline() while line != "" :
line = infile.readline()
▪ Si può scrivere in un file (aperto in scrittura) utilizzando il metodo write() : o A differenza di print(), quando si scrive del testo su un file di output, occorre aggiungere esplicitamente il carattere di fine linea, per poter passare alla linea successiva ▪ Può essere comodo usare il metodo write() con stringhe formattate: outfile.write("Hello, World! \n ") outfile.write(f"Number of entries: {count}\nTotal: {total:8.2f}\n") https://realpython.com/read-write-files-python/
▪ È possibile scrivere più righe contemporaneamente con il metodo outfile.writelines(righe), che riceve come parametro una lista di stringhe o Ciascuna delle stringhe deve già terminare con ‘ \n ’, in quanto il terminatore di riga non viene aggiunto da writelines ▪ Infine, si può chiedere alla funzione print di inviare l’output su un file, con il parametro opzionale file= print("Il risultato è:", val, file=outfile ) https://realpython.com/read-write-files-python/