Gestione dei File in Python

📁

📁 Gestione dei File in Python

Impara a leggere, scrivere e manipolare file per conservare i tuoi dati in modo persistente

💾 Perché gestire i file?

La gestione dei file in Python è un aspetto fondamentale della programmazione, permettendo di leggere, scrivere e modificare dati in modo persistente. I file vengono utilizzati per conservare informazioni tra le esecuzioni di un programma, evitando la perdita di dati.

⚙️ Configurazione

Salvataggio di dati di configurazione e preferenze utente

📊 Logging

Registrazione di eventi e attività del programma

📋 Dati Strutturati

Manipolazione di file CSV, JSON e XML

🔢 File Binari

Lettura e scrittura di immagini, audio e altri file binari


🔓
Apertura e Chiusura dei File

L’accesso ai file in Python avviene tramite la funzione open(), che richiede il percorso del file e una modalità di apertura.

⚠️ Metodo Tradizionale (Non Raccomandato):

Richiede la chiusura manuale del file con close()

Python – Metodo Base
file = open("esempio.txt", "r")  # Apertura in lettura
contenuto = file.read()
file.close()  # ⚠️ Chiusura manuale necessaria!

✅ Metodo Raccomandato: Context Manager

Utilizza with per gestire automaticamente l’apertura e la chiusura del file

Python – Best Practice
with open("esempio.txt", "r") as file:
    contenuto = file.read()
    # Il file viene chiuso automaticamente all'uscita dal blocco! ✅

💡 Perché usare with?

  • Chiusura automatica del file anche in caso di errori
  • Codice più pulito e leggibile
  • Gestione corretta delle risorse di sistema

🎛️
Modalità di Apertura

Python offre diverse modalità per aprire i file, ognuna con uno scopo specifico:

Modalità Descrizione Uso Comune
r Lettura (default). Il file deve esistere. Leggere configurazioni, log
w Scrittura. Se il file esiste, viene sovrascritto. Creare nuovi file
a Aggiunta. I nuovi dati vengono aggiunti alla fine. Scrivere log incrementali
x Creazione. Se il file esiste, genera un errore. Creare file unici
b Modalità binaria (combinabile: rb, wb) Immagini, audio, video
r+ Lettura e scrittura Modificare file esistenti

📌 Nota Importante:

La modalità w cancella completamente il contenuto esistente. Per aggiungere dati, usa a!

✍️
Lettura e Scrittura

Python fornisce diversi metodi per interagire con i file, ognuno ottimizzato per casi d’uso specifici:

📖 Metodi di Lettura

  • read() – legge tutto il contenuto del file
  • readline() – legge una singola riga alla volta
  • readlines() – restituisce una lista di tutte le righe

✍️ Metodi di Scrittura

  • write() – scrive una stringa nel file
  • writelines() – scrive una lista di stringhe

📝 Esempio: Scrittura in un File

Python – Scrittura
with open("esempio.txt", "w") as file:
    file.write("Questo è un nuovo testo\n")
    file.write("Seconda riga di testo\n")
    
# File salvato e chiuso automaticamente! ✅

📖 Esempio: Lettura Riga per Riga

Python – Lettura
with open("esempio.txt", "r") as file:
    for riga in file:
        print(riga.strip())  # strip() rimuove spazi e \n

# Output:
# Questo è un nuovo testo
# Seconda riga di testo

💡 Best Practice:

Per file di grandi dimensioni, è preferibile leggere riga per riga piuttosto che caricare tutto in memoria con read(). Questo approccio è più efficiente e previene problemi di memoria.

🔄 Esempio: Lettura Completa del File

Python – Lettura Completa
# Metodo 1: Tutto in una stringa
with open("esempio.txt", "r") as file:
    contenuto = file.read()
    print(contenuto)

# Metodo 2: Lista di righe
with open("esempio.txt", "r") as file:
    righe = file.readlines()
    for riga in righe:
        print(riga.strip())

⚠️
Gestione degli Errori

Durante la manipolazione dei file possono verificarsi vari errori: file inesistenti, permessi insufficienti, disco pieno, ecc. È fondamentale gestirli correttamente con try-except.

🚨 Errori Comuni:

  • FileNotFoundError: Il file specificato non esiste
  • PermissionError: Permessi insufficienti per accedere al file
  • IOError: Errore generico di input/output
  • IsADirectoryError: Si sta tentando di aprire una cartella come file
Python – Gestione Errori
try:
    with open("esempio.txt", "r") as file:
        contenuto = file.read()
        print(contenuto)
except FileNotFoundError:
    print("❌ Errore: Il file non esiste.")
except PermissionError:
    print("❌ Errore: Permessi insufficienti per leggere il file.")
except IOError as e:
    print(f"❌ Errore di lettura/scrittura: {e}")
else:
    print("✅ File letto con successo!")
finally:
    print("🔚 Operazione completata.")

💡 Struttura Completa:

  • try: Codice che potrebbe generare errori
  • except: Gestione degli errori specifici
  • else: Eseguito solo se NON ci sono errori
  • finally: Eseguito sempre, con o senza errori

🛡️ Esempio: Scrittura Sicura

Python – Scrittura con Controllo Errori
def scrivi_file_sicuro(nome_file, contenuto):
    try:
        with open(nome_file, "w") as file:
            file.write(contenuto)
        return True, "✅ File scritto con successo"
    except PermissionError:
        return False, "❌ Permessi insufficienti"
    except IOError as e:
        return False, f"❌ Errore: {e}"

# Utilizzo
successo, messaggio = scrivi_file_sicuro("dati.txt", "Hello World!")
print(messaggio)

🚀 Vuoi Approfondire?

Questa panoramica copre le basi della gestione dei file in Python. Per tecniche avanzate come la gestione di file binari, CSV e JSON, continua il tuo percorso!

📊 File CSV

Impara a manipolare dati tabulari e fogli di calcolo

🗂️ File JSON

Gestisci dati strutturati in formato JSON

🖼️ File Binari

Lavora con immagini, audio e video

📂 Gestione Path

Manipola percorsi e cartelle con pathlib

Torna in alto