2008-09-24 6 views
23

Я использовал ConfigParser довольно долго для простых конфигураций. Одна вещь, которая долгое время меня прослушивала, - это раздел DEFAULT. Я не совсем уверен, что подходит. Я прочитал документацию, но мне бы очень хотелось увидеть некоторые умные примеры ее использования и то, как она влияет на другие разделы в файле (что действительно иллюстрирует возможные вещи).Каково предполагаемое использование раздела DEFAULT в файлах конфигурации, используемых ConfigParser?

ответ

31

Я нашел объяснение here googling для "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.

+0

+1 для использования Python в примерах. – refi64 2014-02-08 02:58:50

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

  • Нет связанных вопросов^_^