2008-09-24 22 views
23

Basit yapılandırmalar için ConfigParser'ı bir süredir kullandım. Beni uzun zamandır dile getiren bir şey DEFAULT'dur. Ne uygun bir kullanım olduğundan emin değilim. Dokümantasyonu okudum, ancak kullanımının akıllıca örneklerini ve dosyadaki diğer bölümleri nasıl etkilediğini gerçekten görmek isterim (gerçekten mümkün olan şeyleri gösteren bir şey).ConfigParser tarafından kullanılan yapılandırma dosyalarında DEFAULT bölümünün kullanım amacı nedir?

cevap

31

"windows ini" "varsayılan bölüm" için googling ile here bir açıklama bulundu. Özet: [VARSAYILAN] bölümüne koyduğunuz her şey diğer bölümlere yayılır.

[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 

Bunu kullanarak ConfigParser okuyabilir:

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

Ama bu lh_server aynıdır fark bağlantılı web sitesinden örneği kullanarak, bir yapılandırma dosyası denilen test1.ini olduğunu varsayalım her iki bölüm; ve aslında, ekleyebileceğim çoğu ev sahibi için de aynı olacağını fark ettim. Bu yüzden test2.ini olarak, bunu yapabilirsiniz: lh_server tuşları olmaması bölümlerde rağmen

[DEFAULT] 
lh_server=192.168.0.1 

[host 1] 
vh_root = PloneSite1 
lh_root = PloneSite1 

[host 2] 
vh_root = PloneSite2 
lh_root = PloneSite2 

, hala erişebilirsiniz:

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

değişken kullanmanın bir başka örnek olarak bağlantılı sayfasını okuyun INI dosyasını daha da basitleştirmek için VARSAYILAN bölümündeki ikame. Örneklerde Python'u kullanmak için

+0

+1. – refi64