Я думаю, вам следует рассмотреть возможность использования модуля shelve
, который обеспечивает постоянные объекты словаря, поддерживаемые файлами.Его легко использовать вместо «реального» словаря, потому что он почти прозрачно обеспечивает вашу программу чем-то, что можно использовать точно так же, как словарь, без необходимости явно преобразовывать его в строку и затем записывать в файл (или наоборот).Versa).
Основное различие заключается в том, что сначала нужно open()
это перед первым использованием, а затем close()
, когда вы закончите (и, возможно, sync()
его, в зависимости от используемой опции writeback
),Любой созданный файловый объект «полки» может содержать в качестве значений обычные словари, позволяющие их логически вкладывать.
Вот простой пример:
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()
Вывод:
{'three': {'three.1': 3.1, 'three.2': 3.2}, 'two': 2, 'one': 1}