Guida completa a Python
📘 Capitolo 10 – Gestione File in Python
Python offre un’interfaccia semplice per lavorare con i file. Puoi:
- Leggere file
- Scrivere o sovrascrivere
- Aggiungere contenuti
- Usare
with
per gestire automaticamente la chiusura del file
🔹 1. Aprire un file: open()
Sintassi base:
f = open("file.txt", "modalità")
Modalità | Significato |
---|---|
"r" | Lettura |
"w" | Scrittura (sovrascrive) |
"a" | Append (aggiunge in fondo) |
"x" | Crea un nuovo file (errore se esiste) |
"b" | Modalità binaria (immagini, audio) |
2. Leggere un file
Supponiamo di avere un file chiamato dati.txt
con qualche riga.
with open("dati.txt", "r") as file:
contenuto = file.read()
print(contenuto)
📌 Altri metodi:
read()
– legge tuttoreadline()
– legge una rigareadlines()
– restituisce tutte le righe come lista
3. Scrivere in un file ("w"
)
with open("output.txt", "w") as file:
file.write("Ciao mondo!\n")
file.write("Sto scrivendo su un file.")
⚠️ Con "w"
il contenuto precedente viene cancellato.
4. Aggiungere a un file ("a"
)
with open("output.txt", "a") as file:
file.write("\nNuova riga aggiunta.")
5. Scrivere e leggere righe da una lista
nomi = ["Luca", "Anna", "Marco"]
# Scrittura
with open("nomi.txt", "w") as f:
for nome in nomi:
f.write(nome + "\n")
# Lettura
with open("nomi.txt", "r") as f:
righe = f.readlines()
for riga in righe:
print(riga.strip())
6. Controllare se un file esiste
import os
if os.path.exists("file.txt"):
print("Il file esiste!")
else:
print("File non trovato.")
🧪 Esercizio pratico
Crea un programma che:
- Chiede all’utente un nome
- Lo salva in un file
utenti.txt
(in append) - Poi legge tutto il file e mostra la lista dei nomi salvati
Soluzione in Python
# 1. Chiediamo un nome all’utente
nome = input("Inserisci il tuo nome: ").strip().capitalize()
# 2. Apriamo il file in modalità append e scriviamo il nome
with open("utenti.txt", "a") as file:
file.write(nome + "\n")
print("\n✅ Nome salvato con successo!")
# 3. Leggiamo tutti i nomi salvati e li stampiamo
print("\n📋 Elenco dei nomi salvati:")
with open("utenti.txt", "r") as file:
for riga in file:
print("-", riga.strip())