Se trovi utile il mio blog sostienimi con una piccola donazione. GRAZIE

10 – I file

INDICE ARTICOLI

Quando si esegue un programma Python tutti i dati vengono memorizzati in Ram e quindi alla chiusura dello stesso ovviamente vengono persi definitivamente.

Per poter salvare i dati di un’applicazione si utilizzano , come in tutti gli altri linguaggi di programmazione , i file.

La gestione dei file in Python è stata implementata internamente al linguaggio e questo ne implica una notevole semplicità e velocità di gestione.

Per aprire (creare) un file si utilizza la funzione open che crea un oggetto di tipo file :

>>> f = open("prova.dat","w")
>>> print f
<open file 'prova.dat', mode 'w' at fe820>

Alla funzione open vengono forniti due argomenti di cui il primo è il nome del file ed il sencondo la modalità di apertura delllo stesso.

Nel nostro caso la modalità sarà “w” che significa scrittura.

Utilizzando questa modalità se il file non esiste verra creato vuoto mentre se esiste verrà sostituito da un nuo file sempre vuoto.

Quando si esegue un print sull’oggetto file le informazioni che stampiamo sono il nome del file , la sua modulità e la sua posizione in memoria.

Per scrive dati nel file si utilizza il metodo write come sotto (ovviamente dopo averlo aperto):

>>> f.write("Primi ")
>>> f.write("dati\n")
>>> f.write("Seconda riga\n")
>>> f.write("Chiudo il file\n")
>>> f.close()

Ora proviamo a vedere cosa abbiamo scritto nel file aprendolo in lettura (modalità r):

>>> f = open("test.dat","r")
>>> Testo = f.read()
>>> print Testo
Primi dati
Seconda riga
Chiudo il file

Come potete vedere se non si pone alla fine della stringa un carattere di a capo /n i dati inseriti vengono accodati sulla stessa riga.

Il metodo read se usato senza nessun argomento legge tutto il file matre se gli viene fornito un argomento numerico legge il numero di caratteri richiesti.

Ad esempio f.read(6) leggerà i primi sei caratteri e se viene nuovamente richiamata leggerà i consecutivi 6 carattere , in pratica viene letto tutto il file a sei carattere per volta fino alla fine .

Quando avremo raggiunto la fine del file il metodo read ci restituirà una stringa vuota e se non volessimo chiudere il file ma semplicemente riposizionarci all’inizio dello stesso per poterlo rileggere dovremo utilizzare il metodo seek in questo modo f.seek(0).

Un file può anche essere letto per righe tramite il metodo readline che leggerà la prima riga del file e le sue successive chiamate le successive righe .

Il metodo readlines (al plurale notate la s finale) leggera’ invece tutte le righe non ancora lette fino alla fine file  .

I file possono essere aperti in tre modalità :

  • “w”    : scrittura
  • “r”     : lettura
  • “r+”  : lettura e scrittura (comodissima per potete leggere e scrivere senza mai chiudere il file)

Quando dovremo scrivere dei numeri all’interno di un file bisogna ricordarsi che l’istruzione write accetta come argomenti solo delle stringhe e quindi dovremo fare un qualcosa del genere :

>>> x = 52
>>> f.write (str(x))

In pratica dovremo convertire i numeri in stringhe.

INDICE ARTICOLI