Каково предполагаемое использование раздела DEFAULT в файлах конфигурации, используемых ConfigParser?

Я довольно давно использую ConfigParser для простых конфигураций. Одна вещь, которая меня беспокоила долгое время, - это раздел ПО УМОЛЧАНИЮ. Я не совсем уверен, что можно использовать. Я прочитал документацию, но мне бы очень хотелось увидеть несколько умных примеров ее использования и того, как она влияет на другие разделы файла (что-то, что действительно иллюстрирует возможные варианты).

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
35
0
10 518
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я нашел объяснение здесь поиском в Google для "windows ini" "default section". Резюме: все, что вы поместили в раздел [ПО УМОЛЧАНИЮ], распространяется на все остальные разделы. Используя пример со связанного веб-сайта, скажем, у меня есть файл конфигурации с именем test1.ini:

[host 1]
lh_server=192.168.0.1
vh_hosts = PloneSite1:8080
lh_root = PloneSite1

[host 2]
lh_server=192.168.0.1
vh_hosts = PloneSite2:8080
lh_root = PloneSite2

Я могу прочитать это с помощью ConfigParser:

>>> cp = ConfigParser.ConfigParser()
>>> cp.read('test1.ini')
['test1.ini']
>>> cp.get('host 1', 'lh_server')
'192.168.0.1'

Но я заметил, что lh_server одинаков в обоих разделах; и, действительно, я понимаю, что это будет то же самое для большинства хостов, которые я мог бы добавить. Так что я могу сделать это как test2.ini:

[DEFAULT]
lh_server=192.168.0.1

[host 1]
vh_root = PloneSite1
lh_root = PloneSite1

[host 2]
vh_root = PloneSite2
lh_root = PloneSite2

Несмотря на то, что в разделах нет ключей lh_server, я все еще могу получить к ним доступ:

>>> cp.read('test2.ini')
['test2.ini']
>>> cp.get('host 1', 'lh_server')
'192.168.0.1'

Прочтите связанную страницу, чтобы увидеть еще один пример использования подстановки переменных в разделе DEFAULT, чтобы еще больше упростить INI-файл.

Другие вопросы по теме