2008-09-24 21 views
23

मैंने सरल विन्यास के लिए थोड़ी देर के लिए ConfigParser का उपयोग किया है। एक चीज जो मुझे लंबे समय तक खराब कर देती है वह डिफॉल्ट अनुभाग है। मुझे सच में यकीन नहीं है कि उचित उपयोग क्या है। मैंने प्रलेखन पढ़ा है, लेकिन मैं वास्तव में इसके उपयोग के कुछ चालाक उदाहरण देखना चाहता हूं और यह फ़ाइल में अन्य अनुभागों को कैसे प्रभावित करता है (ऐसा कुछ जो वास्तव में संभवतः चीजों को दिखाता है)।ConfigParser द्वारा उपयोग की जाने वाली कॉन्फ़िगरेशन फ़ाइलों में DEFAULT अनुभाग का इच्छित उपयोग क्या है?

उत्तर

31

मुझे "विंडोज इनआई" "डिफ़ॉल्ट खंड" के लिए googling द्वारा एक स्पष्टीकरण here मिला। सारांश: जो भी आप [DEFAULT] अनुभाग में डालते हैं, वह हर दूसरे खंड में प्रचारित हो जाता है।

[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 में एक ही है लिंक की गई वेबसाइट से उदाहरण का उपयोग, मान लें कि मैं एक कॉन्फ़िग फ़ाइल कहा जाता test1.ini डालते हैं दोनों वर्ग; और, वास्तव में, मुझे एहसास है कि अधिकांश मेजबानों के लिए यह वही होगा जो मैं जोड़ सकता हूं। इसलिए मैं यह कर सकता हूँ 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' 

चर का उपयोग करने का एक और उदाहरण के लिए लिंक किए गए पृष्ठ पढ़ें आईएनआई फ़ाइल को और भी सरल बनाने के लिए डिफॉल्ट अनुभाग में प्रतिस्थापन। उदाहरणों में पायथन का उपयोग करने के लिए

+0

+1। – refi64

संबंधित मुद्दे