Найти в Дзене
Властелин машин

Как быстро считать настройки для приложения на Python

Практически любое среднее и крупное приложение нуждается в задании файла настроек для первоначальной инициализации своих параметров. Конечно, можно пойти универсальным путем и, опираясь на знания методики считывания файлов на Python, решить данный вопрос. Вместе с тем, если есть готовые решения, упрощающие задачу, не надо изобретать велосипед, так как вам хватит множества других нерешенных

Практически любое среднее и крупное приложение нуждается в задании файла настроек для первоначальной инициализации своих параметров. Конечно, можно пойти универсальным путем и, опираясь на знания методики считывания файлов на Python, решить данный вопрос. Вместе с тем, если есть готовые решения, упрощающие задачу, не надо изобретать велосипед, так как вам хватит множества других нерешенных проблем, где придется применить изобретательность и потратить личное время.

Итак, для быстрого считывания настроек из файла предназначен стандартный модуль configparser. При соблюдении определенных правил задания параметров процесс их извлечения из файла сведется к процедуре аналогичной обращению к ключам словаря. Так, типичный файл конфигураций может выглядеть следующим образом:

[секция_1]
параметр_11=значение_11
...
параметр_N1=значение_N1
[секция_2]
параметр_12=значение_12
...
параметр_N2=значение_N2
...
...
[секция_m]
параметр_1m=значение_1m
...
параметр_Nm=значение_Nm

В этом случае для считывания параметр_ij (фактически находится на i-ом месте в секции j) потребуется осуществить следующие шаги:

  • создать экземпляр класса ConfigParser из модуля configparser;
  • вызвать метод read класса с заданием в качестве аргумента пути к файлу с настройками;
  • обратиться к параметру как к словарю;

Например, создадим файл conf.cfg следующего вида:

-2

Выведем значения параметр_ij:

-3

Секцию можно задать и одну, например, так:

[общая]
параметр_1=значение_1
...
параметр_N=значение_N

Изменим наш файл и считаем содержимое параметрN:

-4
-5

Распространенным случаем является задание одной общей секции и нескольких частных, например, это может пригодится в случае наличия блока одинаковых и частных настроек у приложения, выполняющего парсинг различных сайтов (подробнее здесь).