Come leggere un file in Python (testo e JSON)

Scopri come leggere i file in Python. Padroneggia l'istruzione open, readline, readlines e la gestione sicura delle eccezioni dei file.

Prova questa soluzione nell'editor

Panoramica

La gestione dei file è un'abilità essenziale per qualsiasi sviluppatore Python. La lettura dei dati dai file consente di elaborare documenti di testo, configurazioni, log, database e set di dati strutturati. Python rende le operazioni sui file straordinariamente semplici grazie alla sua funzione incorporata `open()`.

Quando si lavora con i file, la best practice più importante è utilizzare l'istruzione "with", che crea un gestore di contesto. Il modello `with open(...)` garantisce che il file venga chiuso in modo sicuro e corretto non appena l'esecuzione lascia il blocco, anche se si verifica un'eccezione al suo interno. Dimenticare di chiudere i file può causare perdite di memoria, danneggiamento dei file e bloccare le risorse di altri processi di sistema.

Python fornisce diversi metodi per leggere i dati una volta aperto un file. Il metodo `.read()` restituisce l'intero contenuto del file come una singola stringa. Il metodo `.readline()` legge una singola riga, rendendolo perfetto per l'iterazione su file di grandi dimensioni che non entrerebbero nella memoria. Il metodo `.readlines()` legge tutte le righe e le restituisce come un elenco di stringhe. Capire quale metodo utilizzare previene l'esaurimento della memoria e rende i tuoi programmi più scalabili.

Codice e output di esecuzione

Questo script dimostra la lettura sicura del contenuto dei file utilizzando il gestore del contesto con la lettura riga per riga e la gestione degli errori.

read_file.py
Prova nell'editor
# Writing a dummy file first
with open("sample.txt", "w") as f:
    f.write("Line 1: Welcome to PyRun!\nLine 2: Python runs in the browser.\nLine 3: Clean and simple.")

# 1. Read entire file contents
with open("sample.txt", "r") as file:
    content = file.read()
    print("--- Entire File ---")
    print(content)

# 2. Read line-by-line (Memory efficient for large files)
print("\n--- Line by Line ---")
with open("sample.txt", "r") as file:
    for line in file:
        print("Read line:", line.strip())
Uscita terminale
--- Entire File ---
Line 1: Welcome to PyRun!
Line 2: Python runs in the browser.
Line 3: Clean and simple.

--- Line by Line ---
Read line: Line 1: Welcome to PyRun!
Read line: Line 2: Python runs in the browser.
Read line: Line 3: Clean and simple.

Implementazione passo dopo passo

  • Utilizzare with open("filename", "r") come istruzione file per aprire in sicurezza il file per la lettura.
  • Chiama file.read() per caricare l'intero contenuto del file in una variabile.
  • Itera direttamente sull'oggetto file utilizzando un ciclo for per leggerlo riga per riga in modo efficiente.
  • Specificare sempre la codifica (ad esempio, encoding="utf-8") per la compatibilità internazionale dei caratteri.

Domande frequenti

Perché dovrei usare l'istruzione with per aprire i file?

L'istruzione with crea un gestore di contesto che chiude automaticamente il file quando si esce dal blocco, anche se si verificano errori.

Come gestisco un FileNotFoundError?

Racchiudi l'istruzione open() in un blocco try-eccetto, rilevando FileNotFoundError: try: with open(...) ... tranne FileNotFoundError: print("File non trovato!").

Argomenti correlati

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.