2012-05-26 5 views
1

У меня есть модуль config.py, в котором есть данные, в которых указаны данные конфигурации.Как сохранить данные конфигурации в файле

Например:

logfile_enable = True 
logfile_name = "debug.log" 
logfile_maxsize = 100*1024 # 100KB 
logfile_backupCount = 1 

Тогда я могу только import config в каждом сценарии проекта, и доступ к данным через config.VAR (config.maxsize, например).

Я хочу сохранить изменения в модуле после закрытия приложения. Я подумал о том, чтобы прокормить модуль __dict__ и каким-то образом установить его при запуске, но я, похоже, не выполняю его, так как вы не можете позвонить __dict__ из самого модуля.

Я не хочу использовать в нем класс и диктофон. Я думаю, что синтаксис config.VAR намного более ясен в скрипте, и я не хочу инициализировать новый объект класса при каждом импорте.

Что я могу сделать?

ответ

3

Я использовал стандартную библиотеку ConfigParser module для этой цели, а затем был глобальный объект конфигурации, так что во всех ваши файлах вы говорите from config import config где config является экземпляром ConfigParser объекта, который вы можете прочитать материал от нагрузки из файла и сохранить в файл.

+0

Сохранение данных само по себе не представляет проблемы, я могу выбирать между «ConfigParser» или «pickle». В обоих случаях мне нужно каким-то образом получить список vars/dict. Есть ли способ получить модуль vars из самого модуля? – iTayb

+1

Если вам не нравится синтаксис config.get ("section", "vaue"), тогда оберните объект 'ConfigParser' в класс, чтобы вы могли сказать' from config import config', а затем config.value. Это немного больше работы, но не оставит вас в мире боли, если вы начнете возиться с модульным словарем! –

Смежные вопросы