Shelves
Objects in dictionaries can be accessed by keys. There is a similar way to access particular data in a file by first assigning it a key. This is possible by using the module shelve:
from contextlib import closing import shelve as sv # opens a data file (creates it before if necessary) with closing(sv.open('datafile')) as data: A = array([[1,2,3],[4,5,6]]) data['my_matrix'] = A # here we created a key
In the section File handling, we saw that the built-in open
command generates a context manager, and we saw why this is important for handling external resources, such as files. In contrast to this command, sv.open
does not create a context manager by itself. The closing
command from the contextlib
module is needed to transform it into an appropriate context manager. Consider the following example of restoring the file:
from contextlib import closing import shelve as sv with closing(sv.open('datafile')...