Eu acho que você deve considerar o uso do shelve
módulo que fornece objetos semelhantes a dicionários, baseados em arquivos persistentes. É fácil de usar no lugar de um dicionário "real" porque fornece de maneira quase transparente ao programa algo que pode ser usado como um dicionário, sem a necessidade de convertê-lo explicitamente em uma string e depois gravar em um arquivo (ou vice-versa). versa).
A principal diferença é a necessidade de inicializá- open()
lo antes do primeiro uso e depois close()
quando você terminar (e possivelmente usá sync()
-lo, dependendo da writeback
opção que está sendo usada). Qualquer objeto de arquivo "prateleira" criado pode conter dicionários regulares como valores, permitindo que sejam aninhados logicamente.
Aqui está um exemplo trivial:
import shelve
shelf = shelve.open('mydata') # open for reading and writing, creating if nec
shelf.update({'one':1, 'two':2, 'three': {'three.1': 3.1, 'three.2': 3.2 }})
shelf.close()
shelf = shelve.open('mydata')
print shelf
shelf.close()
Resultado:
{'three': {'three.1': 3.1, 'three.2': 3.2}, 'two': 2, 'one': 1}