indice: linguaggio_python
Problema
Impariamo a gestire i file risolvendo un vero problema
Usando un foglio di calcolo si crea una rubrica telefonica al computer e la si salva come file.CSV (comma separated values). Si vuole realizzare un programma che ci aiuti a trovare un numero di telefono a partire da un cognome (se non esistono omonimi)
- Domanda: quali dati mancano? Abbiamo tutto quello che serve per realizzare questo programma?
Per iniziare a risolvere problemi veri, si devono fare tante semplificazioni, in modo da riuscire a superare un problema più semplice
Quindi, ecco un programma che legge una riga di testo da un file CSV e la trasforma in una lista di elementi:
- rubrica1.py
f = open('./prova.csv','r') riga = f.readline() if '\n' in riga : # rimuove eventuale invio a fine riga l = len(riga) riga = riga[0:l-1] lista = riga.split(',') print lista f.close()
Proviamo a cercare un cognome nella prima riga
- rubrica2.py
f = open('./prova.csv','r') riga = f.readline() if '\n' in riga : # rimuove eventuale invio a fine riga l = len(riga) riga = riga[0:l-1] lista = riga.split(',') cognome = raw_input("inserire il cognome desiderato: ") if cognome in lista : print lista else : print "cognome", cognome, "non trovato" f.close()
Questo programma ha un difetto: cerca il cognome anche nella colonna dei nomi e dei numeri, ma è una perdita di tempo…
inoltre questo programma non cerca in tutto il file, ma solo nella prima riga