Come leggere e scrivere file in Python

Leggere e scrivere su file è un'attività comune nella programmazione e Python la semplifica con le sue capacità di gestione dei file integrate. Capire come lavorare con i file è essenziale per qualsiasi programmatore Python, poiché consente di gestire l'archiviazione dei dati, la registrazione, la gestione della configurazione e altro ancora. Questa guida spiegherà come aprire, leggere, scrivere e chiudere file in Python, nonché come gestire diverse modalità di file.

Apertura e chiusura dei file

In Python, si usa la funzione open() per aprire un file. La funzione open() restituisce un oggetto file, che fornisce metodi per la lettura e la scrittura. È importante chiudere un file dopo averlo utilizzato usando il metodo close() per liberare risorse di sistema.

# Opening and closing a file
file = open("example.txt", "r")  # Open file for reading
# Perform file operations
file.close()  # Close the file

Lettura dei file

Esistono diversi modi per leggere il contenuto di un file in Python, a seconda delle esigenze:

Leggi l'intero file

Il metodo read() legge l'intero contenuto del file in un'unica stringa.

# Reading the entire file
with open("example.txt", "r") as file:
    content = file.read()
    print(content)

Leggi le righe di un file

Il metodo readline() legge una riga dal file, mentre readlines() legge tutte le righe e le restituisce come un elenco.

# Reading lines using readline()
with open("example.txt", "r") as file:
    line = file.readline()
    while line:
        print(line.strip())
        line = file.readline()

# Reading all lines using readlines()
with open("example.txt", "r") as file:
    lines = file.readlines()
    for line in lines:
        print(line.strip())

Lettura dei file riga per riga

Il metodo preferito per leggere un file riga per riga è usare un ciclo for direttamente sull'oggetto file. Questo approccio è efficiente in termini di memoria, specialmente per file di grandi dimensioni.

# Reading file line by line using a for loop
with open("example.txt", "r") as file:
    for line in file:
        print(line.strip())

Scrittura su file

Python consente di scrivere su file utilizzando i metodi write() e writelines(). È necessario aprire il file in una modalità che supporti la scrittura, come 'w' (write) o 'a' (append).

Scrittura su un file

Il metodo write() scrive una singola stringa in un file. L'apertura di un file in modalità di scrittura 'w' creerà un nuovo file o ne sovrascriverà uno esistente.

# Writing to a file
with open("output.txt", "w") as file:
    file.write("Hello, World!\n")
    file.write("This is a new line.")

Aggiunta a un file

L'apertura di un file in modalità aggiunta 'a' consente di aggiungere contenuto alla fine di un file esistente senza sovrascriverne il contenuto.

# Appending to a file
with open("output.txt", "a") as file:
    file.write("\nThis line is appended.")

Scrivere più righe

Il metodo writelines() viene utilizzato per scrivere più righe in un file. Si aspetta un elenco di stringhe, ciascuna rappresentante una riga.

# Writing multiple lines to a file
lines = ["Line 1\n", "Line 2\n", "Line 3\n"]
with open("output.txt", "w") as file:
    file.writelines(lines)

Modalità file

La funzione open() di Python supporta diverse modalità per l'apertura dei file:

  • 'r' - Modalità di lettura (predefinita). Apre un file per la lettura.
  • 'w' - Modalità scrittura. Apre un file per la scrittura (crea un nuovo file o tronca un file esistente).
  • 'a' - Modalità Aggiungi. Apre un file per l'aggiunta (crea un nuovo file se non esiste).
  • 'r+' - Modalità di lettura e scrittura. Apre un file sia in lettura che in scrittura.
  • 'b' - Modalità binaria. Apre un file in modalità binaria (utilizzata con 'rb', 'wb', ecc.).

Conclusione

Leggere e scrivere su file in Python è semplice una volta compresi i concetti di base e le modalità file. Padroneggiando la gestione dei file, puoi gestire in modo efficiente i dati, gestire input/output utente e automatizzare le attività che coinvolgono operazioni sui file. Fai pratica usando queste tecniche per diventare esperto nella gestione dei file in Python.