2008-08-28 14 views
7

यह ऐसा कुछ है जो मुझे लगता है कि बहुत उपयोगी होगा। असल में, मैं मानव हस्तक्षेप की आवश्यकता के बिना प्रोग्रामन के प्रोग्रामिंग को संपादित करने का एक तरीका बनना चाहता हूं।प्रोग्रामेटिक रूप से पायथन स्रोत संपादित करना

  1. संपादित करें कि विन्यास के लिए स्रोत मॉड्यूल का उपयोग अजगर क्षुधा के विन्यास: वहाँ मैं इस के साथ क्या करना चाहते हैं चीजों के एक जोड़े हैं।

  2. एक "टेम्पलेट" सेट करें जिससे मैं तुरंत एक अजगर स्रोत फ़ाइल को अनुकूलित कर सकते हैं। इस तरह, मैं एक ओपन सोर्स ऐप पर एक "प्रोजेक्ट" सिस्टम स्थापित कर सकता हूं जिस पर मैं काम कर रहा हूं और कुछ फाइलों को अनुकूलित करने की इजाजत देता हूं।

मैं शायद कुछ ऐसा है जो अपने आप ऐसा कर सकते हैं लिख सकता है, लेकिन मुझे लगता है कि उद्घाटन प्रकार मुद्दों "विवरण में शैतान का" का एक बहुत ऊपर देख सकते हैं। क्या वर्तमान में ऐसा करने के कोई तरीके हैं, या क्या मुझे सिर्फ बुलेट काटने और इसे लागू करने के लिए जाना है?

उत्तर

3

पायथन की मानक लाइब्रेरी पायथन स्रोत के साथ काम करने के लिए बहुत अच्छी सुविधाएं प्रदान करती है; tokenize और parser मॉड्यूल नोट करें।

+1

अगर मैं इससे बच सकता हूं तो मैं एएसटी पेड़ के साथ मकड़ी नहीं करना चाहूंगा, इसलिए मैं इसका जवाब ले जाऊंगा "ऐसा करने का कोई आसान तरीका नहीं है।" –

0

मैं एक ही मुद्दा था और मैं बस फाइल खोली और कुछ को बदलने के लिए क्या किया: तो अजगर दुभाषिया में फ़ाइल पुनः लोड। यह ठीक काम करता है और करना आसान है।

अन्यथा AFAIK आपको कुछ conf वस्तुओं का उपयोग करना होगा।

0

चीजों के इन प्रकार के अधिकांश पायथन में प्रोग्राम के निर्धारित किया जा सकता, सिस, ओएस, और विशेष _file_ पहचानकर्ता जो आपको बताता है जहां फाइल सिस्टम पथ में हैं जैसे मॉड्यूल का उपयोग कर।

यह जब एक मॉड्यूल पहले आयात किया जाता है यह फ़ाइल गुंजाइश है, जो प्रणाली पर निर्भर व्यवहार के विकास के लिए महत्वपूर्ण है में सब कुछ निष्पादित करेंगे कि ध्यान में रखना जरूरी है। उदाहरण के लिए, ओएस मॉड्यूल मूल रूप से निर्धारित करता है कि आप आयात पर किस ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं और फिर उसके कार्यान्वयन को तदनुसार समायोजित करता है (लिनक्स, ओएसएक्स, विंडोज इत्यादि से संबंधित एक और मॉड्यूल आयात करके)।

इस सुविधा में बहुत सारी शक्ति है और इन पंक्तियों के साथ कुछ शायद आप जो खोज रहे हैं। :)

[संपादित करें] मैंने कुछ दुर्लभ, हैकिश उदाहरणों में socket.gethostname() का भी उपयोग किया है। ;)

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