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

11 – Il modulo Pickling

INDICE ARTICOLI

Come abbiamo visto nell’articolo precedente in python quando si scrive un file lo si scrive in formato testo.

In molti casi l’essere obbligati a salvare i dati in un file di testo può essere una limitazione non indifferente, infatti se scriviamo una serie di valori in un file come nell’esempio di seguito :

>>> f.write (str(12.3))
>>> f.write (str(4.567))
>>> f.write (str([1,2,3]))

Quando li leggeremo possiamo renderci conto che non è facile comprendere dove inzia e finisce esattamente uno dei valori, infatti leggendo il file otterremo :

>>>f.readline()
’12.34.567[1, 2, 3]’

La soluzione è utilizzare il modulo Pickling che ci permetterà di preservare le strutture dei dati.

Per scivere dei dati in un file con questo modo si agisce come riportato di seguito :

>>> import pickle
>>> f = open("test.pck","w")
>>>pickle.dump(12.3, f)
>>>pickle.dump(4.567, f)
>>>pickle.dump([1,2,3], f)
>>>f.close()

A questo punto possiamo riaprire il file e ricaricare le strutture di dati memorizzate per mezzo del metodo
load:

>>> f = open("test.pck","r")
>>> x = pickle.load(f)
>>> x
12.3
>>> type(x)
<type ’float’>
>>> x2 = pickle.load(f)
>>> x2
4.567
>>> type(x2)
<type ’float’>
>>> y = pickle.load(f)
>>> y
[1, 2, 3]
>>> type(y)
<type ’list’>

Ogni volta che useremo il metodo load otterremo un valore completo del suo tipo originale.

INDICE ARTICOLI