Как предполагается использовать раздел ПО УМОЛЧАНИЮ в файлах конфигурации, используемых ConfigParser?

StackOverflow https://stackoverflow.com/questions/124692

Вопрос

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

Это было полезно?

Решение

Я нашел объяснение здесь поискав в Google "windows ini" "раздел по умолчанию".Краткие сведения:все, что вы помещаете в раздел [ПО УМОЛЧАНИЮ], распространяется на все остальные разделы.Используя пример со связанного веб-сайта, допустим, у меня есть конфигурационный файл с именем 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'

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top