Il modulo shelve di Python
Il modulo shelve mi permette di salvare una classe o un oggetto strutturato in un file esterno al programma.
A cosa serve? Una volta creato, posso ricaricare l'oggetto in qualsiasi momento nel programma o in altri programmi.
Un esempio pratico
Per spiegare il funzionamento del modulo shelve, farò un esempio pratico.
Sviluppo due programmi distinti (A e B).
- Il programma A salva un oggetto strutturato.
- Il programma B legge l'oggetto.
Come creare e salvare un oggetto
Il programma A crea la classe Rubrica e aggiunge al suo interno un oggetto.
- import shelve
- db = shelve.open('nome')
- class Rubrica:
- def __init__(self, nome):
- self.nome = nome
- var = Rubrica('Minini')
- db['Andrea'] = var
- db.close()
La classe e i dati sono salvati in un file esterno al programma (nomefile) tramite il modulo shelve.
Come leggere l'oggetto
Il programma B legge l'oggetto (nomefile) e i dati al suo interno.
- import shelve
- class Rubrica:
- def __init__(self, nome):
- self.nome = nome
- db = shelve.open('db')
- var=db['Andrea']
- print(var.nome)
L'output del programma è il seguente:
Minini
Grazie a questo modulo ho trasferito la classe e i dati da un programma all'altro tramite un file binario.
E così via.