vuoi
o PayPal
tutte le volte che vuoi
INFO 01.12.20
GESTIONE DEI FILE IN PHYTON:
- File di testo -> codificato con stringhe
Memoria centrale e secondaria -> accesso ai dati tramite funzioni di input e output e file
- Memoria secondaria
Gestione dei file in Phyton:
- Funzioni built in e metodi dell’oggetto file
- Lettura, scrittura dei file di testo
➢ tutti oggetti risiedono in memoria centrale RAM
➢ Problema:
o Tutto questo sistema (->) è volatile in particolare la
RAM
▪ Ram perde tutte le info sui dati una volta
spento il pc
▪ Per accedere alla persistenza dei dati non si
puo usare la RAM
o Memoria di massa / hardisk / memoria secondaria -> disco fisso
o File -> dati come stringhe di carattere persistenti nel disco fisso
▪ Leggere dal disco fisso -> necessario scrivere dentro un file le informazioni
riguardo i dati
▪ File = astrazione che ci permette di memorizzare sulla mem secondaria
▪ Necessari meccanismi per leggere e scrivere i dati dalla memoria secondaria
➢ Vista logica:
o Mostra i file come organizzati in una
gerarchia
➢ Non usiamo mai la vista fisica
Utilizzo file:
➢ Persistenza dati
➢ Archiaviazione e elaborazione di una grande quantita di dati
➢ Accesso ai dati attraverso un’unica interfaccia software (API), ossia quella dei file phyton
➢ File: unica grande stringa di carattere con tutte le informazioni
Algoritmo standard per operare coi file
- Aprire file
o creazione oggetto file descritto collegato a una variabile, che sara a sua volta
collegato a dei dati all’interno del disco fisso
- Operazioni di lettura e/o scrittura
o manipolare l’informazione
- Chiudere il file
o informare phyton che rendiamo persistenti le modifiche fatte al file
▪ se non lo chiudiamo potrebbe succedere che non resa persistente ciò che
abbiamo scritto sul file
FUNZIONI OPEN() E METODO CLOSE() (riferito all oggetto in particolare):
➢ variabile e oggetto (file desccritto) e file fisicamente è nel disco
fisso
o associazione nascostata tra ogg fileDescr e file all’interno
del HDD
➢ var = open(nomeFile, modo, encoding)
o ci sono 3 parametri nella funzione open()
o modo = lettura scrittura o append?
▪ Scrittura: contenuto del file viene azzerato
automaticamente
▪ Append: scrittura speciale: scrivere nel file e preserva i dati gia all’interno
del file senza azzerare nulla -> continuo dalla fine
o Encoding: stringa che indica la codifica utilizzata per interpretare i caratteri delle
stringhe lette e scritte (specifica per i file id testo)
▪ Specifica come vogliamo leggere l’informazione all’interno del file
▪ Noi vogliamo leggerlo sottoforma di stringa
➢ Nome del file:
o Assoluto -> specifico tutto il percorso dal nodo di route (C:) fino al file stesso
compreso
o Relativo -> specifica solo il nome del file
▪ Phyton ipotizza che il file si trovi nella stessa cartella da dove abbiamo
lanciato la nostra thonny o shell
➢ Modo:
o r,w,a -> read write append
o posso combinare piu modi: es r+w
▪ problema: rischiamo di fare casino -> è piu complesso
➢ econding=’utf-8’
FILE: - trattato come una
sequenza di caratteri
➢ Ciao sono marco = oggetto
➢ una volta aperto il file: visto logica -> stringa ^
➢ \n = carattere speciale che indica ‘a capo’ -> viene però trattato come un carattere anche se
non si vede nel file concretamente
o \n e spazio contano come caratteri
➢ Cursore: caratterizza l’oggetto file descritto dalla stringa
o A ogni file descritto è associato un cursore
o Cursore si muove man mano che leggo e scrivo
o Quando apro il file la stringa non finisce nell’oggetto fileDescr
▪ I dati sono sempre fisicamente nel file
➢ Var = open(...)
➢ Fine: var.close() -> metodo dell’oggetto fileDescr -> chiusura di un file
SCRITTURA DI UN FILE (di testo)
Un metodo: write
o Var = open(“dati.txt”, mode=”w”, encoding=”utf-8”)
o T=”ciao”
o Var.write(t) -> stringa scritta da dove si trova il cursore in avanti
o Var.close()
esempio - Una volta chiuso rendo persistenti
le modifiche in memoria secondaria
- Distruggo l’oggetto descrittore al
file (distruggo l’associazione)
- Con write si cancella tutto solo al momento dell’aperura con modo w
- W = apriamo un file nuovo ma una volta chiuso i dati rimangono
o Se viene riaperto con modo w si chiude tutto
CURSORE: - Fino a che non chiudo il file, questo
rimane vuoto (A0 A1 A2)
- Cursore si trova sempre alla fine di
ogni mio carattere
- Quando chiudo il file è come se lo
salvassi
LETTURA FILE:
3 metodi: readlines, readline e read
- READ
➢ Ritorna l’intero contenuto del file sottoforma di stringa
➢ Viene creato un oggetto stringe associato alla variabile t, diverso dall’oggetto descrittore del
file
➢ Con read compare TUTTO il file in un colpo
o Sconveniente: file se troppo grande viene creato un oggetto che risiede nella RAM
che ha dimensioni piccole rispetto al disco fisso
▪ Occuperebbe troppo spazio inutile
o In ram tengo le cose che mi servono, non tutto il contenuto del disco fisso