cat python/scrivere-e-leggere-un-file-di-testo.md
Scrivere e leggere un file di testo
Salvare una stringa in un file e leggerla in una nuova esecuzione.
Prima idea
Finora il programma dimenticava tutto alla fine. Scrivere su file permette di conservare note, punteggi e preferenze.
Questa lezione fa parte del modulo File, dati e piccoli automatismi. L’obiettivo del modulo è: Leggere e salvare dati semplici per costruire programmi che ricordano qualcosa tra un’esecuzione e l’altra.
Parole nuove
- write_text: scrive testo in un file.
- read_text: legge testo da un file.
- encoding: regola usata per salvare caratteri e accenti.
Cosa impari
- Scrivere testo con UTF-8.
- Leggere il testo salvato.
- Capire che scrivere può sostituire il contenuto precedente.
Esempio da copiare
from pathlib import Path
file_note = Path("note.txt")
file_note.write_text("Prima nota\n", encoding="utf-8")
testo = file_note.read_text(encoding="utf-8")
print(testo)
Prima copialo senza modificarlo. Poi cambia una cosa sola e riesegui: una parola, un numero, un messaggio o un valore.
Prova guidata
- Chiedi una nota con input.
- Salvala in un file.
- Leggi il file e stampa il contenuto.
- Esegui di nuovo e osserva cosa succede.
Esercizi
Base · facile
Scrivi una nota in un file con write_text (UTF-8), poi rileggila con read_text e stampala.
Soluzione
from pathlib import Path
file_note = Path("note.txt")
file_note.write_text("Prima nota\n", encoding="utf-8")
print(file_note.read_text(encoding="utf-8"))
encoding="utf-8" evita problemi con accenti; write_text sostituisce il contenuto precedente.
Intermedio · medio
Chiedi una nota con input e salvala; esegui due volte e osserva che la seconda sovrascrive la prima. Spiega cosa servirebbe per aggiungere invece di sostituire (append).
Sfida · difficile
Implementa un piccolo registro che aggiunge una riga a ogni esecuzione senza perdere le precedenti (leggi il testo esistente, aggiungi la nuova riga, riscrivi — oppure apri in modalità append). Spiega la differenza tra sovrascrivere e accodare e quando serve ciascuna.
Controllo finale
Hai finito quando una nota resta disponibile dopo aver chiuso il programma.