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 Section 14.1.1: Interacting with files, we saw that the built-in command open 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 command closing from the module contextlib is needed to transform it into an appropriate context manager.
Consider the following example of restoring the file:
from contextlib import closing import shelve...