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.
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 strutturawith
, il file viene chiuso automaticamente al termine dell’operazione.for item in my_list:
Si esegue un ciclo per ciascun elemento della listamy_list
.file.write(f"{item}\n")
Si scrive ogni elemento della lista su una nuova riga nel file. Utilizzando il formatof"{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 strutturawith
, 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 listamy_list
. Usandoline.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 strutturawith
, 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 listamy_list
. Utilizzando una list comprehension, ogni riga viene processata in sequenza eline.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 modulocsv
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 parametronewline=''
evita l’inserimento di righe vuote tra le righe.writer = csv.writer(file)
Si crea un oggettowriter
per scrivere sul file CSV.writer.writerow(['Fruit', 'Price'])
Scrive la riga di intestazione.writer.writerows(fruits)
Scrive ciascun elemento della listafruits
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 modulocsv
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 oggettoreader
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 listafruits
.
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 modulocsv
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 oggettowriter
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 listafruits
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 modulocsv
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 oggettoreader
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 listafruits
.
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.