कमांड लाइन से निष्पादित करते समय बहुत बार हमें पायथन लिपि में तर्क पारित करने की आवश्यकता होती है। हालाँकि, स्क्रिप्ट अपवाद उठाती है जब आवश्यक पैरामीटर समान संख्या या प्रकार या क्रम में प्रदान नहीं किए जाते हैं। यहीं पर कमांड लाइन तर्क को ठीक से पार्स करने की आवश्यकता होती है।
आर्गपार्स मॉड्यूल कमांड लाइन इंटरफेस का उपयोग करने के लिए बहुत आसान लिखने के लिए उपकरण प्रदान करता है। यह sys.argv सूची में एकत्रित तर्कों को पार्स करने के तरीके को संभालता है, स्वचालित रूप से सहायता उत्पन्न करता है और अमान्य विकल्प दिए जाने पर त्रुटि संदेश जारी करता है।
कमांड लाइन इंटरफेस को तैयार करने के लिए पहला कदम पार्सर ऑब्जेक्ट सेट करना है। यह ArgumentParser() . द्वारा किया जाता है argparse मॉड्यूल में कार्य करता है। फ़ंक्शन को विवरण पैरामीटर के रूप में एक व्याख्यात्मक स्ट्रिंग दिया जा सकता है।
हमारी स्क्रिप्ट के साथ शुरू करने के लिए बिना किसी तर्क के कमांड लाइन से निष्पादित किया जाएगा। अभी भी parse_args() का उपयोग करें पार्सर ऑब्जेक्ट की विधि, जो कुछ भी नहीं करती है क्योंकि कोई तर्क नहीं दिया गया है।
आयात argparseparser =argparse.ArgumentParser(description="sample तर्क पार्सर")args=parser.parse_args()
जब उपरोक्त स्क्रिप्ट चलती है
C:\python36>python argparser1.pyC:\python36>python argparser1.py --helpusage:argparser1.py [-h]नमूना तर्क parserवैकल्पिक तर्क:-h, --help यह सहायता संदेश दिखाएं और बाहर निकलें
दूसरा कमांड लाइन उपयोग -help विकल्प देता है जो दिखाए गए अनुसार एक सहायता संदेश उत्पन्न करता है। -help पैरामीटर डिफ़ॉल्ट रूप से उपलब्ध होता है।
अब हम एक तर्क को परिभाषित करते हैं जो स्क्रिप्ट को चलाने के लिए अनिवार्य है और यदि स्क्रिप्ट नहीं दी गई है तो त्रुटि फेंकनी चाहिए। यहां हम add_argument() . द्वारा तर्क 'उपयोगकर्ता' को परिभाषित करते हैं विधि।
आयात करें और:प्रिंट ("हैलो गेस्ट")इस स्क्रिप्ट की मदद अब 'उपयोगकर्ता' के रूप में एक स्थितीय तर्क दिखाती है। प्रोग्राम जांचता है कि इसका मान 'एडमिन' है या नहीं और संबंधित संदेश प्रिंट करता है।
C:\python36>python argparser1.py --helpusage:argparser1.py [-h] उपयोगकर्ता नमूना तर्क पार्सरपोजिशनल तर्क:उपयोगकर्ता वैकल्पिक तर्क:-h, --help यह सहायता संदेश दिखाएं और बाहर निकलेंC:\python36>python argparser1. py AdminHello AdminC:\python36>python argparser1.py tempHello Guest
हम डिफ़ॉल्ट असाइन कर सकते हैं add_argument() विधि में किसी तर्क का मान।
आयात करें ="एडमिन":प्रिंट ("हैलो एडमिन") और:प्रिंट ("हैलो गेस्ट")यहां नर्ग कमांड-लाइन तर्कों की संख्या है जिनका उपभोग किया जाना चाहिए। '?'। यदि संभव हो तो कमांड लाइन से एक तर्क का उपभोग किया जाएगा, और एक आइटम के रूप में उत्पादित किया जाएगा। यदि कोई कमांड-लाइन तर्क मौजूद नहीं है, तो डिफ़ॉल्ट से मान उत्पन्न होगा।
C:\python36>python argparser1.pyHello AdminC:\python36>python argparser1.py AdminHello AdminC:\python36>python argparser1.py testHello Guest
डिफ़ॉल्ट रूप से, सभी तर्कों को स्ट्रिंग के रूप में माना जाता है। स्पष्ट रूप से टाइप करें . का उल्लेख करने के लिए तर्क के अनुसार, add_argument() विधि में प्रकार पैरामीटर का उपयोग करें। सभी पायथन डेटा प्रकार मान्य प्रकार के मान हैं।
आयात करें args.firsty =args.secondz =x+yprint ('{} और {} ={}'.format(x,y,z))C:\python36>python argparser2.py 2 32 और 3 का जोड़ =5उपरोक्त उदाहरणों में, तर्क अनिवार्य हैं। वैकल्पिक तर्क जोड़ने के लिए, इसके नाम को डबल डैश -- से पहले लगाएं। निम्नलिखित मामले में उपनाम तर्क वैकल्पिक है क्योंकि यह डबल डैश (--उपनाम) द्वारा उपसर्ग है
आयात करें ' ')अगर args.surname:print (args.surname)तर्क का एक अक्षर का नाम, जिसके पहले एकल डैश लगा होता है, संक्षिप्त नाम विकल्प के रूप में कार्य करता है।
C:\python36>python argparser3.py Malaharमेरा नाम मल्हार हैC:\python36>python argparser3.py मल्हार --सरनेम Lathkarमेरा नाम मल्हार है Lathkarparser.add_argument("-s","--surname")
यदि यह वांछित है कि एक तर्क को केवल एक परिभाषित सूची से ही मूल्य देना चाहिए, तो इसे विकल्प पैरामीटर के रूप में परिभाषित किया जाता है।
आयात करें args.sub)ध्यान दें कि यदि पैरामीटर का मान सूची से नहीं है, तो अमान्य विकल्प त्रुटि प्रदर्शित होती है।
C:\python36>python argparser4.py Physicsमेरा विषय है PhysicsC:\python36>python argparser4.py पसंद:'अंग्रेजी' ('भौतिकी', 'गणित', 'जीव विज्ञान' से चुनें)