2013-01-21 36 views
7

द्वारा पढ़ा जा सकता है मेरे पास उसी फ़ोल्डर में पाइथन स्क्रिप्ट और शैल स्क्रिप्ट हैं जिन्हें दोनों को कॉन्फ़िगरेशन की आवश्यकता है। मेरे पास वर्तमान में मेरी पायथन स्क्रिप्ट के लिए config.py है लेकिन मैं सोच रहा था कि एक कॉन्फ़िगरेशन फ़ाइल होना संभव है जिसे आसानी से दोनों पायथन स्क्रिप्ट और शैल स्क्रिप्ट द्वारा पढ़ा जा सकता है।एक कॉन्फ़िगरेशन फ़ाइल जिसे पायथन और खोल

क्या कोई भी पाइथन और खोल दोनों द्वारा पढ़ने के लिए उपयुक्त कॉन्फ़िगरेशन फ़ाइल के प्रारूप का उदाहरण दे सकता है।

+0

मैंने 'YAML' का उपयोग किया है, और इसकी अनुशंसा की है। 'पायथन-यमल' भी है। –

उत्तर

6

मुझे लगता है कि सबसे सरल समाधान हो जाएगा:

key1="value1" 
key2="value2" 
key3="value3" 

में आप सिर्फ स्रोत को यह env फ़ाइल और अजगर में, यह पार्स करने के लिए आसान है है।

NUMBER=42 
STRING="Hello there" 

आप और क्या चाहिए: Emulating Bash 'source' in Python

+0

क्या इससे कोई फर्क पड़ता है कि फ़ाइल प्रारूप क्या है, यानी सीएफजी, आईएनआई आदि? – Jimmy

+0

डेबियन के लिए, कोई फर्क नहीं पड़ता। –

1

यह दोनों खोल और अजगर में मान्य है:

रिक्त स्थान के आसपास =

पायथन के लिए अनुमति नहीं है, इस पोस्ट को देख?

+0

मुझे लगता है कि ओपी एक ऐसी विधि के लिए चाहता है जो सम्मेलनों को तोड़ न सके। (यानी फ़ाइल को टेक्स्ट फ़ाइल के रूप में नहीं खोलें या उप-प्रोसेस शुरू करें या 'eval'' पर कॉल करें) – JellicleCat

1

configobj lib इससे मदद कर सकता है।

from configobj import ConfigObj 
cfg = ConfigObj('/home/.aws/config') 
access_key_id = cfg['aws_access_key_id'] 
secret_access_key = cfg['aws_secret_access_key'] 
+0

मुझे लगता है कि आपको ['aws_access_key_id'] से पहले [] जोड़ना चाहिए। सीएफजी जैसे कुछ [<प्रोफ़ाइल नाम>] ['aws_access_key_id'] – Malgi

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

  • कोई संबंधित समस्या नहीं^_^