Pickling and shelving
If there is a lot of information that your software needs or if you want to preserve history across different runs, there is little choice apart from saving it somewhere and loading it back on the next run.
Manually saving and loading back data can be tedious and error-prone, especially if the data structures are complex.
For this reason, Python provides a very convenient module, shelve
, that allows us to save and restore Python objects of any kind as far as it's possible to pickle
them.
How to do it...
Perform the following steps for this recipe:
shelf
, implemented byshelve
, can be opened like any other file in Python. Once opened, it's possible to read and write keys into it like a dictionary:
>>> with shelve.open('/tmp/shelf.db') as shelf:
... shelf['value'] = 5
...
- Values stored into
shelf
can be read back as a dictionary, too:
>>> with shelve.open('/tmp/shelf.db') as shelf:
... print(shelf['value'])
...
5
- Complex values, or even custom classes, can...