| Esempio | Funzione principale | Approccio | Pro / Contro |
|---|---|---|---|
scriviFile.py |
Scrittura su file | open("file", "a") + write() |
Pro: semplice e chiaro, consente scrittura multipla in coda; Contro: write() non aggiunge automaticamente newline, va fatto manualmente |
leggiFileFor.py |
Lettura riga per riga con for |
Ciclo for line in file |
Pro: Pythonic, pulito, il ciclo termina automaticamente a fine file; Contro: meno flessibile se si vuole manipolare il puntatore del file |
leggiFileWhile.py |
Lettura riga per riga con while e readline() |
Ciclo while line != "" |
Pro: permette controlli più espliciti e logica complessa durante la lettura; Contro: più verboso, il ciclo deve essere gestito manualmente |
contaCarFile.py |
Conteggio caratteri nel file | Legge tutto con read() + ciclo for sui caratteri |
Pro: didattico, mostra iterazione su stringhe; Contro: meno efficiente per file grandi |
contaCarFile2.py |
Conteggio caratteri nel file | Legge tutto con read() + str.count() |
Pro: Pythonic e compatto, molto più leggibile e veloce; Contro: bisogna caricare tutto il file in memoria |
Scrittura su file
open("file", "w") per sovrascrivere o open("file", "a") per appendere.\n se vuoi andare a capo.Lettura riga per riga
for su file: semplice e Pythonic.while con readline(): più verboso, utile se vuoi manipolare la riga letta prima di leggere la successiva.Lettura e analisi contenuto
read() è comodo per file piccoli.str.count() è più rapido e leggibile.for permette di aggiungere logica complessa su ciascun carattere.# Python 3: scrittura, lettura e analisi file in modo compatto e leggibile
# Nome del file
filename = "fileProva.txt"
# --- 1) Scrittura / Append ---
# Se il file non esiste viene creato, altrimenti i contenuti vengono aggiunti
with open(filename, "a") as f:
f.write("stringa di prova\n")
f.write("seconda \tstringa\n")
f.write("terza \t\tstringa\n")
# --- 2) Lettura riga per riga (Pythonic) ---
print("Lettura riga per riga:")
with open(filename, "r") as f:
for line in f:
print(line.strip()) # strip() rimuove \n e spazi iniziali/finali
print("\n--- Lettura completa del file ---")
# --- 3) Lettura completa in memoria ---
with open(filename, "r") as f:
content = f.read()
print(content)
# --- 4) Conteggio caratteri usando for (didattico) ---
char_to_count = input("Inserisci il carattere da cercare: ")
count_for = sum(1 for c in content if c == char_to_count)
print(f"Conteggio usando for: il carattere '{char_to_count}' compare {count_for} volte")
# --- 5) Conteggio caratteri usando str.count() (Pythonic) ---
count_count_method = content.count(char_to_count)
print(f"Conteggio usando count(): il carattere '{char_to_count}' compare {count_count_method} volte")
with open(...) as f: gestisce automaticamente la chiusura del file.for line in f: legge riga per riga in modo Pythonico, senza preoccuparsi della fine del file.str.count() è il modo più semplice e veloce per contare occorrenze.for c in content per mostrare la logica dei cicli.