Sostieni AppuntiFacili con una piccola donazione su PayPal
Dona con PayPalIn Python è possibile effettuare operazioni sui file, come aprirli, crearli, scriverli, leggerli e chiuderli.
Perché è utile lavorare con i file?
.txt, .csv, .json, .yaml, ecc.Per aprire un file si utilizza la funzione integrata open().
Sintassi:
file = open("percorso_file.txt", "modalità")
dove:
percorso_file.txt: il percorso del file da aprire;modalità: specifica cosa si vuole fare (leggere, scrivere, ecc.).| Modalità | Descrizione |
|---|---|
| r | read - Permette di leggere il contenuto di un file. Solleva errore se il file non esiste. |
| w | write - Per scrivere su un file. Se il file esiste già, viene sovrascritto. |
| a | append - Scrive in fondo al file senza sovrascriverlo. |
file = open("test.txt", "r")
print(file)
WARNING
Se si cerca di aprire un file che non esiste, Python solleva un’eccezione: FileNotFoundError.
Quando si lavora con file, è importante chiuderli dopo l’utilizzo per liberare risorse.
Per chiudere un file in python si usa la funzione file.close().
Esempio:
file = open("test.txt", "r")
file.close()
Per leggere il contenuto di un file, si usa file.read().
Esempio:
file = open("test.txt", "r")
content = file.read()
print(content)
file.close()
file.readline() legge una singola riga alla volta.file.readlines() restituisce una lista di tutte le righe del file.Esempio:
file = open("test.txt", "r")
for riga in file.readlines():
print(riga.strip())
file.close()
Per scrivere in un file in python, occorre utilizzare la funzione file.write().
Esempio:
file = open("nuovo_file.txt", "w")
file.write("Ciao mondo!\n")
file.write("Questo è un secondo messaggio.")
file.close()
WARNING
Aprendo un file con "w", se il file esiste già, il contenuto verrà cancellato.
Per scrivere senza sovrascrivere:
file = open("nuovo_file.txt", "a")
file.write("\nAggiunta di una nuova riga.")
file.close()
Python mette a disposizione anche alcune funzioni che permettono di leggere alcune proprietà di un file dopo la sua apertura:
file = open("test.txt", "r")
print(f"NomeFile: {file.name}")
print(f"Modalità: {file.mode}")
print(f"Chiuso?: {file.closed}")
file.close()
dove:
file.name: restuituisce il nome del file.file.mode: restituisce la modalità di apertura (r, w, a).file.closed: restituisce True se il file è chiuso, False se è aperto.L’istruzione with permette di gestire automaticamente l’apertura e la chiusura dei file, anche in caso di errore.
Esempio:
with open("test.txt", "r") as file:
contenuto = file.read()
print(contenuto)
# Il file viene chiuso automaticamente qui
INFO
Usare with è una buona pratica perché evita dimenticanze nella chiusura dei file.
Quando si lavora con file esterni, possono verificarsi errori (file mancanti, permessi negati, ecc.).
È buona norma gestirli con try-except.
Esempio:
try:
with open("inesistente.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.")
else:
print("File letto correttamente.")
finally:
print("Operazione terminata.")
Scrivi un programma che:
try-except l’eventuale errore FileNotFoundError.Punti extra:
LettoreFile con un metodo leggi_file(nome_file) che:
FileNotFoundError e PermissionError;Crea un programma che:
frasi.txt;with per la gestione del file.Punti extra:
Crea una classe GestoreFile che contenga:
scrivi_testo(file, testo) per scrivere il testo nel file specificato;leggi_testo(file) per leggerne il contenuto e mostrarlo a video.All’interno dei metodi, utilizza il blocco try-except per gestire eventuali errori:
FileNotFoundError se il file non esiste;PermissionError se non si hanno i permessi di scrittura o lettura;Al termine dell’esecuzione, mostra un messaggio di conferma se la scrittura è andata a buon fine oppure un messaggio di errore personalizzato in caso contrario.
Scrivi un programma che:
origine.txt;copia.txt;with per entrambe le operazioni;try-except.Punti extra:
Crea una classe FileManager che includa:
copia_file(orig, dest) che legga il contenuto del file sorgente e lo copi nel file di destinazione;Quiz a risposta multipla
1) Qual è la funzione usata per aprire un file in Python?
2) Cosa fa la modalità 'w' nella funzione open()?
3) Qual è il vantaggio principale dell'uso di 'with' per aprire un file?
4) Quale metodo legge tutto il contenuto di un file?
5) Cosa succede se si apre un file inesistente in modalità 'r'?
6) Come si scrive una riga di testo in un file?
7) Quale di queste è una buona pratica nella gestione dei file?
8) Quale proprietà di un file indica se è chiuso?
9) Qual è il metodo per leggere una singola riga da un file?
10) Cosa fa la modalità 'a' in open()?