Fai "parlare" i tuoi script con il mondo esterno: leggi e scrivi file di testo, CSV e JSON.
Finora i nostri dati "vivevano" solo mentre lo script era in esecuzione: appena chiudevi il programma, sparivano. I file permettono di salvare informazioni in modo permanente e di riutilizzarle in futuro, o di leggere dati che qualcun altro ha creato (una lista clienti, un elenco di prodotti, ecc.).
# Scrivere in un file di testo with open("note.txt", "w") as file: file.write("Oggi ho imparato Python!") # Leggere da un file di testo with open("note.txt", "r") as file: contenuto = file.read() print(contenuto)
Il blocco with open(...) as file: apre il file, lo rende disponibile con il nome che scegli, e lo chiude automaticamente al termine — anche se si verifica un errore.
Il formato più semplice: righe di testo senza struttura particolare. Ideali per note, log, elenchi semplici.
CSV sta per "Comma-Separated Values": righe di dati separati da virgole, perfette per rappresentare tabelle (come un foglio Excel semplificato).
JSON rappresenta dati strutturati (simili ai dizionari Python) in modo leggibile sia dall'uomo che dal computer. È il formato più usato per scambiare dati tra programmi diversi, incluse le API.
"r" legge (read), "w" scrive sovrascrivendo tutto (write), "a" scrive aggiungendo in fondo (append), "r+" legge e scrive.
Usare with open(...) as file: garantisce che il file venga sempre chiuso correttamente, anche se il codice al suo interno genera un errore: è la pratica raccomandata.
Spunta ogni passaggio man mano che lo completi: sbloccherai l'attestato di questa guida al termine.
Esempio per il punto 1
with open("note.txt", "w") as file: file.write("Prima riga\nSeconda riga\nTerza riga")
Esempio per il punto 2
with open("note.txt", "r") as file: contenuto = file.read() print(contenuto)
Esempio per il punto 3
import csv with open("studenti.csv", "w", newline="") as file: writer = csv.writer(file) writer.writerow(["nome", "età", "città"]) writer.writerow(["Anna", 28, "Roma"])
Esempio per il punto 4
import json studente = {"nome": "Luca", "corso": "Python"} with open("dati.json", "w") as file: json.dump(studente, file) with open("dati.json", "r") as file: dati = json.load(file) print(dati["nome"]) # Luca
Tocca ogni termine per vederne la definizione.
Scrivi uno script che chiede all'utente una frase con input() e la aggiunge (in modalità "a") a un file diario.txt, ogni volta su una nuova riga.
Crea un file CSV con intestazione "nome,email" e almeno 3 righe di dati fittizi. Poi scrivi uno script che lo rilegge e stampa ogni riga.
Questo codice dà errore: with open("dati.txt", "r") as file: ma il file "dati.txt" non è mai stato creato prima. Spiega che tipo di errore genera Python e come lo risolveresti (suggerimento: modalità "w" o verifica di esistenza).
Completa tutti i 5 passaggi della checklist per sbloccare il tuo attestato in PDF.