cat python/scrivere-e-leggere-un-file-di-testo.md

Lezione 3815 min

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

  1. Chiedi una nota con input.
  2. Salvala in un file.
  3. Leggi il file e stampa il contenuto.
  4. 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.