Metodo pratico per scrivere e leggere liste su file in Python

Python è un linguaggio estremamente flessibile per la gestione dei dati, e salvare e leggere liste da file è una delle operazioni frequentemente eseguite. In questo articolo, illustreremo i metodi concreti per scrivere e leggere liste su file di testo o file CSV utilizzando Python, con esempi di codice dettagliati.

Indice

Come scrivere una lista su un file in Python

Scrivere una lista su un file in Python è molto utile per salvare o condividere dati. In questa sezione, spiegheremo i passaggi per scrivere una lista su un file di testo.

Scrittura su file di testo

Per scrivere una lista su un file di testo, si utilizza la funzione incorporata di Python open. La funzione open serve per aprire file, e specificando la modalità w si apre il file in modalità di scrittura.

Aprire un file in modalità di scrittura

with open('output.txt', 'w') as file:
    for item in my_list:
        file.write(f"{item}\n")

Nel codice sopra, si utilizza la struttura with open per aprire il file. Si apre il file chiamato output.txt in modalità w (scrittura), e ogni elemento della lista viene scritto su una nuova riga. La funzione file.write scrive ciascun elemento della lista nel file.

Chiudere il file

Utilizzando la struttura with open, il file viene chiuso automaticamente al termine delle operazioni. In questo modo, non è necessario chiuderlo esplicitamente, rendendo l’operazione di scrittura più sicura.

Esempio di codice per scrivere una lista su un file

Vediamo un esempio concreto per illustrare come scrivere una lista su un file in Python.

Definizione e inizializzazione della lista

Per prima cosa, definiamo la lista che vogliamo scrivere su file. In questo esempio, memorizziamo i nomi di alcuni frutti in una lista.

my_list = ['Apple', 'Banana', 'Cherry', 'Date', 'Elderberry']

Esempio di codice per scrivere la lista su un file

Successivamente, scriviamo il contenuto della lista su un file di testo.

with open('fruits.txt', 'w') as file:
    for item in my_list:
        file.write(f"{item}\n")

Descrizione del codice

  • with open('fruits.txt', 'w') as file:
    Si crea un file chiamato 'fruits.txt' e lo si apre in modalità di scrittura ('w'). Utilizzando la struttura with, il file viene chiuso automaticamente al termine dell’operazione.
  • for item in my_list:
    Si esegue un ciclo per ciascun elemento della lista my_list.
  • file.write(f"{item}\n")
    Si scrive ogni elemento della lista su una nuova riga nel file. Utilizzando il formato f"{item}\n", si inserisce un’interruzione di riga dopo ogni elemento.

Verifica del risultato

Eseguendo il codice sopra, viene creato un file chiamato fruits.txt, contenente ciascun elemento della lista su una riga separata. Il contenuto del file sarà simile al seguente:

Apple
Banana
Cherry
Date
Elderberry

Come leggere una lista da un file in Python

Leggere una lista da un file in Python è utile per riutilizzare o analizzare i dati. In questa sezione, spiegheremo come leggere una lista da un file di testo.

Metodo per leggere da un file di testo

Per leggere una lista da un file di testo, si utilizza la funzione incorporata di Python open. La funzione open permette di aprire file, e specificando la modalità r si apre il file in modalità di lettura.

Aprire un file in modalità di lettura

with open('fruits.txt', 'r') as file:
    my_list = [line.strip() for line in file]

Nel codice sopra, si utilizza la struttura with open per aprire il file. Il file chiamato fruits.txt viene aperto in modalità r (lettura), e ciascuna riga del file viene letta e memorizzata in una lista.

Conversione in lista

  • with open('fruits.txt', 'r') as file:
    Si apre il file 'fruits.txt' in modalità di lettura ('r'). Grazie alla struttura with, il file viene chiuso automaticamente dopo le operazioni.
  • my_list = [line.strip() for line in file]
    Ogni riga del file viene letta e memorizzata nella lista my_list. Usando line.strip(), si rimuove il carattere di nuova riga alla fine di ogni riga.

Verifica del risultato

Eseguendo il codice sopra, i dati letti da fruits.txt vengono memorizzati nella lista my_list. Il contenuto del file verrà convertito nella seguente lista:

my_list = ['Apple', 'Banana', 'Cherry', 'Date', 'Elderberry']

Esempio di codice per leggere una lista da un file

Vediamo un esempio concreto per leggere una lista da un file in Python.

Esempio di codice per leggere una lista da un file

Il seguente codice mostra come leggere una lista da un file di testo.

with open('fruits.txt', 'r') as file:
    my_list = [line.strip() for line in file]

Descrizione del codice

  • with open('fruits.txt', 'r') as file:
    Si apre il file 'fruits.txt' in modalità di lettura ('r'). Grazie alla struttura with, il file viene chiuso automaticamente al termine dell’operazione.
  • my_list = [line.strip() for line in file]
    Ogni riga del file viene letta e memorizzata nella lista my_list. Utilizzando una list comprehension, ogni riga viene processata in sequenza e line.strip() rimuove il carattere di nuova riga alla fine di ogni riga.

Esempio pratico

Di seguito, mostriamo il contenuto effettivo del file e il risultato della lettura nella lista.

Contenuto di fruits.txt:

Apple
Banana
Cherry
Date
Elderberry

Lista letta dal file:

my_list = ['Apple', 'Banana', 'Cherry', 'Date', 'Elderberry']

Gestione degli errori

È importante aggiungere una gestione degli errori nel caso in cui il file non esista o si verifichi un problema durante la lettura. Nell’esempio seguente, utilizziamo try e except per gestire gli errori.

try:
    with open('fruits.txt', 'r') as file:
        my_list = [line.strip() for line in file]
except FileNotFoundError:
    print("Il file non è stato trovato.")
except IOError:
    print("Si è verificato un errore durante la lettura del file.")

Esempio avanzato: Gestione dei file CSV

Vediamo come scrivere e leggere una lista su un file CSV. I file CSV sono molto utili per salvare e condividere dati e sono ampiamente utilizzati.

Scrittura su file CSV

Utilizziamo il modulo csv di Python per scrivere una lista su un file CSV.

Definizione e inizializzazione della lista

Per prima cosa, definiamo la lista da scrivere su file CSV. In questo esempio, memorizziamo alcuni frutti e i loro prezzi.

fruits = [
    ['Apple', 100],
    ['Banana', 50],
    ['Cherry', 200],
    ['Date', 150],
    ['Elderberry', 300]
]

Esempio di codice per scrivere su un file CSV

Successivamente, scriviamo il contenuto della lista su un file CSV.

import csv

with open('fruits.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['Fruit', 'Price'])
    writer.writerows(fruits)

Descrizione del codice

  • import csv
    Si importa il modulo csv di Python.
  • with open('fruits.csv', 'w', newline='') as file:
    Si crea un file CSV chiamato 'fruits.csv' e lo si apre in modalità di scrittura ('w'). Il parametro newline='' evita l’inserimento di righe vuote tra le righe.
  • writer = csv.writer(file)
    Si crea un oggetto writer per scrivere sul file CSV.
  • writer.writerow(['Fruit', 'Price'])
    Scrive la riga di intestazione.
  • writer.writerows(fruits)
    Scrive ciascun elemento della lista fruits come riga nel file CSV.

Lettura da file CSV

Successivamente, vediamo come leggere una lista da un file CSV.

import csv

with open('fruits.csv', 'r') as file:
    reader = csv.reader(file)
    header = next(reader)  # Salta la riga di intestazione
    fruits = [row for row in reader]

Descrizione del codice

  • import csv
    Si importa il modulo csv di Python.
  • with open('fruits.csv', 'r') as file:
    Si apre il file CSV 'fruits.csv' in modalità di lettura ('r').
  • reader = csv.reader(file)
    Si crea un oggetto reader per leggere dal file CSV.
  • header = next(reader)
    Si salta la riga di intestazione.
  • fruits = [row for row in reader]
    Ogni riga del file viene letta e memorizzata nella lista fruits.

Esempi di codice per operazioni con file CSV

Vediamo esempi concreti per scrivere e leggere liste su file CSV utilizzando Python.

Esempio di codice per scrivere su un file CSV

Il seguente codice mostra come scrivere il contenuto di una lista su un file CSV.

import csv

# Lista di dati da scrivere
fruits = [
    ['Apple', 100],
    ['Banana', 50],
    ['Cherry', 200],
    ['Date', 150],
    ['Elderberry', 300]
]

# Scrittura sul file CSV
with open('fruits.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    # Scrittura della riga di intestazione
    writer.writerow(['Fruit', 'Price'])
    # Scrittura delle righe di dati
    writer.writerows(fruits)

Descrizione del codice

  • import csv
    Si importa il modulo csv di Python.
  • fruits
    Si definisce una lista contenente vari frutti e i loro prezzi.
  • with open('fruits.csv', 'w', newline='') as file:
    Si crea un file CSV chiamato 'fruits.csv' e lo si apre in modalità di scrittura ('w'). newline='' evita l’inserimento di righe vuote tra le righe.
  • writer = csv.writer(file)
    Si crea un oggetto writer per scrivere sul file CSV.
  • writer.writerow(['Fruit', 'Price'])
    Si scrive la riga di intestazione, con le colonne 'Fruit' e 'Price'.
  • writer.writerows(fruits)
    Si scrive ciascun elemento della lista fruits come riga di dati nel file CSV.

Esempio di codice per leggere da un file CSV

Vediamo ora come leggere una lista da un file CSV.

import csv

# Lettura dei dati da un file CSV
with open('fruits.csv', 'r') as file:
    reader = csv.reader(file)
    # Salta la riga di intestazione
    header = next(reader)
    # Memorizza ciascuna riga nella lista
    fruits = [row for row in reader]

Descrizione del codice

  • import csv
    Si importa il modulo csv di Python.
  • with open('fruits.csv', 'r') as file:
    Si apre il file 'fruits.csv' in modalità di lettura ('r').
  • reader = csv.reader(file)
    Si crea un oggetto reader per leggere il file CSV.
  • header = next(reader)
    Si salta la riga di intestazione.
  • fruits = [row for row in reader]
    Ogni riga del file viene memorizzata nella lista fruits.

Verifica del risultato

Eseguendo il codice sopra, si ottiene la seguente lista:

fruits = [
    ['Apple', 100],
    ['Banana', 50],
    ['Cherry', 200],
    ['Date', 150],
    ['Elderberry', 300]
]

Esercizi

Proponiamo degli esercizi per comprendere meglio le operazioni di scrittura e lettura di liste su file in Python. Questi esercizi aiutano a sviluppare competenze pratiche.

Esercizio 1: Scrittura e lettura su file di testo

Scrivete la seguente lista su un file di testo chiamato vegetables.txt, quindi leggete il file e stampate la lista risultante.

vegetables = ['Carrot', 'Potato', 'Cabbage', 'Broccoli', 'Spinach']

Risultato atteso

  • Il file vegetables.txt contiene ciascun nome di verdura su una nuova riga.
  • Dopo la lettura, si ottiene una lista uguale alla lista originale vegetables.

Esercizio 2: Scrittura e lettura su file CSV

Scrivete la seguente lista su un file CSV chiamato employees.csv, quindi leggete il file e stampate la lista risultante.

employees = [
    ['John Doe', 'Manager', 50000],
    ['Jane Smith', 'Developer', 60000],
    ['Emily Davis', 'Designer', 55000]
]

Risultato atteso

  • Il file employees.csv contiene i dati di ciascun dipendente su una nuova riga.
  • Dopo la lettura, si ottiene una lista uguale alla lista originale employees.

Esercizio 3: Modifica dei dati e salvataggio

Il file students.txt contiene i nomi degli studenti e i loro punteggi. Leggete questo file, aumentate i punteggi di 10 punti per ciascuno studente e salvate il risultato in un nuovo file chiamato updated_students.txt.

Contenuto di students.txt:

Alice, 80
Bob, 70
Charlie, 90
Diana, 85
Edward, 60

Risultato atteso

  • Il file updated_students.txt contiene i dati con i punteggi incrementati di 10 punti.

Contenuto di updated_students.txt:

Alice, 90
Bob, 80
Charlie, 100
Diana, 95
Edward, 70

Conclusione

Abbiamo illustrato i metodi concreti per scrivere e leggere liste su file in Python. Salvare una lista su un file di testo o su un file CSV facilita la conservazione e la condivisione dei dati. Leggere i dati da un file consente anche di utilizzare dati esterni.

In questo articolo, abbiamo mostrato esempi concreti di scrittura e lettura su file di testo e file CSV, descrivendo ogni passaggio con codice reale. Inoltre, abbiamo proposto esercizi pratici per approfondire la comprensione.

Acquisire queste competenze rende l’elaborazione dei dati con Python più efficiente ed efficace. Consigliamo di utilizzare queste tecniche nella programmazione quotidiana.

Indice