पायथन स्क्रिप्ट में कमांड लाइन तर्क कैसे जोड़ें

How Add Command Line Arguments Python Script



यदि आपने एक पायथन स्क्रिप्ट या एप्लिकेशन विकसित किया है जो मुख्य रूप से टर्मिनल एमुलेटर या यहां तक ​​​​कि जीयूआई ऐप में चलाया जाता है, तो कमांड लाइन तर्क जोड़ने से इसकी उपयोगिता, कोड पठनीयता, एप्लिकेशन संरचना और अंतिम उपयोगकर्ताओं के लिए एप्लिकेशन की समग्र उपयोगकर्ता मित्रता में सुधार हो सकता है। इन कमांड लाइन तर्कों को विकल्प या स्विच भी कहा जाता है और उन तर्कों के समान काम करते हैं जिन्हें आप आमतौर पर बैश स्क्रिप्ट और अन्य सी / सी ++ आधारित कार्यक्रमों में देखते हैं।

पायथन लिपियों में तर्क जोड़ने के लिए, आपको argparse नामक एक अंतर्निहित मॉड्यूल का उपयोग करना होगा। जैसा कि नाम से पता चलता है, यह पाइथन स्क्रिप्ट या एप्लिकेशन लॉन्च करते समय उपयोग किए जाने वाले कमांड लाइन तर्कों को पार करता है। इन पार्स किए गए तर्कों को यह सुनिश्चित करने के लिए argparse मॉड्यूल द्वारा भी जांचा जाता है कि वे उचित प्रकार के हैं। तर्कों में अमान्य मान होने पर त्रुटियाँ उठाई जाती हैं।







argparse मॉड्यूल के उपयोग को उदाहरणों के माध्यम से सबसे अच्छी तरह से समझा जा सकता है। नीचे कुछ कोड नमूने दिए गए हैं जो आपको argparse मॉड्यूल के साथ आरंभ करेंगे।



उदाहरण 1: सहायता तर्क और संदेश उत्पन्न करें

नीचे दिए गए कोड नमूने पर विचार करें:



आयातअर्गपारसे

पार्सर =अर्गपार्स।तर्क पार्सर(विवरण='एक परीक्षण कार्यक्रम।')

args= पार्सर.parse_args()

पहला कथन argparse मॉड्यूल आयात करता है। इसके बाद, ArgumentParser ऑब्जेक्ट का एक नया उदाहरण बनाया जाता है और प्रोग्राम के लिए एक संक्षिप्त विवरण एक तर्क के रूप में दिया जाता है। कमांड लाइन तर्क मानों को पायथन द्वारा समझे गए डेटा प्रकारों में बदलने के लिए ArgumentParser ऑब्जेक्ट की आवश्यकता होती है। यह ArgumentParser ऑब्जेक्ट की parse_args विधि द्वारा किया जाता है, जैसा कि अंतिम कथन में दिखाया गया है।





यह मानते हुए कि आपने ऊपर बताए गए कोड सैंपल को test.py नाम की फाइल में सेव कर लिया है, नीचे दिए गए कमांड्स को चलाने से आपको प्रोग्राम से संबंधित मैसेज की मदद मिलेगी।

$./परीक्षण.पीयू-एच

$./परीक्षण.पीयू-मदद

आपको इसके समान कुछ आउटपुट मिलना चाहिए:



उपयोग: test.py [-h]


एक परीक्षण कार्यक्रम।


वैकल्पिक तर्क:

-h, --help यह सहायता संदेश दिखाएं और बाहर निकलें

ध्यान दें कि ऊपर वर्णित कोड नमूने में पार्स किए गए तर्कों को संभालने और उन्हें वस्तुओं में बदलने के लिए कोई तर्क नहीं जोड़ा गया है। इसलिए, अलग-अलग तर्कों के लिए सहायता संदेश आउटपुट में नहीं दिखाए जाते हैं। एक बार जब आप अपने प्रोग्राम में पार्स किए गए तर्कों के मूल्यों को संभालने के लिए तर्क जोड़ते हैं, तो सहायता संदेश अलग-अलग तर्कों के लिए विवरण दिखाना शुरू कर देंगे।

उदाहरण 2: एक स्ट्रिंग तर्क को संभालें

अपनी पायथन लिपि द्वारा स्वीकार्य तर्क जोड़ने के लिए, आपको add_argument विधि का उपयोग करने की आवश्यकता है। निम्नलिखित कोड पर एक नज़र डालें:

आयातअर्गपारसे

पार्सर =अर्गपार्स।तर्क पार्सर(विवरण='एक परीक्षण कार्यक्रम।')

पार्सर.add_argument('प्रिंट_स्ट्रिंग', मदद='आपूर्ति किए गए तर्क को प्रिंट करता है।')

args= पार्सर.parse_args()

प्रिंट(तर्कप्रिंट_स्ट्रिंग)

Add_argument पद्धति का उपयोग दिखाते हुए एक नया कथन जोड़ा गया है। स्क्रिप्ट लॉन्च करते समय जोड़े गए किसी भी तर्क को ArgumentParser द्वारा print_string ऑब्जेक्ट के रूप में माना जाएगा।

ध्यान दें कि डिफ़ॉल्ट रूप से, add_argument विधि तर्कों से प्राप्त मानों को स्ट्रिंग्स के रूप में मानती है, इसलिए आपको इस मामले में प्रकार को स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता नहीं है। जब तक ओवरराइड नहीं किया जाता है, तब तक जोड़े गए तर्कों को कोई भी डिफ़ॉल्ट मान भी असाइन नहीं किया जाता है।

एक बार फिर सहायता संदेश पर एक नज़र डालें:

उपयोग: test.py [-h] [print_string]


एक परीक्षण कार्यक्रम।


स्थितीय तर्क:

print_string आपूर्ति किए गए तर्क को प्रिंट करता है।


वैकल्पिक तर्क:

-h, --help यह सहायता संदेश दिखाएं और बाहर निकलें

आउटपुट में पंक्तियों में से एक स्थितीय तर्क कहता है। चूंकि तर्क के लिए कोई कीवर्ड परिभाषित नहीं किया गया है, वर्तमान में तर्क को एक स्थितिगत तर्क के रूप में माना जाता है जहां आपूर्ति किए गए तर्क के क्रम और स्थिति का कार्यक्रम पर सीधा प्रभाव पड़ता है। स्थितिगत तर्क भी अनिवार्य हैं, जब तक कि आप उनके व्यवहार को मैन्युअल रूप से नहीं बदलते।

वैकल्पिक तर्कों को परिभाषित और पार्स करने के लिए, आप - (डबल डैश) का उपयोग कर सकते हैं और डिफ़ॉल्ट तर्क का उपयोग करके उनके डिफ़ॉल्ट मानों को बदल सकते हैं।

आयातअर्गपारसे

पार्सर =अर्गपार्स।तर्क पार्सर(विवरण='एक परीक्षण कार्यक्रम।')

पार्सर.add_argument('--प्रिंट_स्ट्रिंग', मदद='आपूर्ति किए गए तर्क को प्रिंट करता है।',चूक जाना=प्रतियादृच्छिक रूप से डोरी.)

args= पार्सर.parse_args()

प्रिंट(तर्कप्रिंट_स्ट्रिंग)

अब जब आप बिना किसी तर्क के test.py स्क्रिप्ट चलाते हैं, तो आपको एक यादृच्छिक स्ट्रिंग मिलनी चाहिए। आउटपुट के रूप में। आप अपनी पसंद की किसी भी स्ट्रिंग को प्रिंट करने के लिए वैकल्पिक रूप से –print_string कीवर्ड का भी उपयोग कर सकते हैं।

$./परीक्षण.पीयू--print_string LinuxHint.साथLinuxHint.com

ध्यान दें कि आप एक अतिरिक्त आवश्यक = सही तर्क का उपयोग करके वैकल्पिक तर्क को अनिवार्य बना सकते हैं।

अंत में, आप वर्बोसिटी को कम करने के लिए - (सिंगल डैश) का उपयोग करके तर्क के शॉर्टहैंड संस्करणों को भी परिभाषित कर सकते हैं।

आयातअर्गपारसे

पार्सर =अर्गपार्स।तर्क पार्सर(विवरण='एक परीक्षण कार्यक्रम।')

पार्सर.add_argument(-पी, '--प्रिंट_स्ट्रिंग', मदद='आपूर्ति किए गए तर्क को प्रिंट करता है।',चूक जाना=प्रतियादृच्छिक रूप से डोरी.)

args= पार्सर.parse_args()

प्रिंट(तर्कप्रिंट_स्ट्रिंग)

निम्नलिखित कमांड को चलाने से आपको ऊपर जैसा ही परिणाम देना चाहिए:

$./परीक्षण.पीयू-पी लिनक्सहिंट।साथ

उदाहरण 3: एक पूर्णांक तर्क को संभालें

पूर्णांक मानों की आवश्यकता वाले तर्कों को संभालने के लिए, आपको सत्यापन की अनुमति देने के लिए टाइप कीवर्ड को int पर सेट करना होगा और शर्त पूरी नहीं होने की स्थिति में त्रुटियों को फेंकना होगा।

आयातअर्गपारसे

पार्सर =अर्गपार्स।तर्क पार्सर(विवरण='एक परीक्षण कार्यक्रम।')

पार्सर.add_argument('-पी', '--प्रिंट_स्ट्रिंग', मदद='आपूर्ति किए गए तर्क को प्रिंट करता है।', प्रकार=NS)

args= पार्सर.parse_args()

प्रिंट(तर्कप्रिंट_स्ट्रिंग)

निम्न आदेश चलाने का प्रयास करें:

$./परीक्षण.पीयू-पी लिनक्सहिंट।साथ

आपको इस तरह की त्रुटि मिलनी चाहिए:

उपयोग: test.py [-h] [-p PRINT_STRING]

test.py: त्रुटि: तर्क -p/--print_string: अमान्य int मान: 'LinuxHint.com'

एक पूर्णांक मान देने से आपको सही परिणाम मिलेगा:

$./परीक्षण.पीयू-पी10001000

उदाहरण 4: सही और गलत टॉगल संभालें

आप कार्रवाई तर्क का उपयोग करके तर्कों को सही और गलत फ़्लैग के रूप में मानने के लिए बिना किसी मान के पास कर सकते हैं।

आयातअर्गपारसे

पार्सर =अर्गपार्स।तर्क पार्सर(विवरण='एक परीक्षण कार्यक्रम।')

पार्सर.add_argument('-पी', '--प्रिंट_स्ट्रिंग', मदद='आपूर्ति किए गए तर्क को प्रिंट करता है।',कार्य='store_true')

args= पार्सर.parse_args()

प्रिंट(तर्कप्रिंट_स्ट्रिंग)

आउटपुट के रूप में एक साधारण ट्रू प्राप्त करने के लिए नीचे दी गई कमांड चलाएँ:

$./परीक्षण.पीयू-पी

यदि आप -p तर्क के बिना स्क्रिप्ट चलाते हैं, तो इसके बजाय एक गलत मान असाइन किया जाएगा। जब भी -p तर्क स्पष्ट रूप से निर्दिष्ट किया जाता है, तो क्रिया कीवर्ड का मान store_true print_string चर के लिए एक सही मान निर्दिष्ट करता है, अन्यथा चर को गलत असाइन किया जाता है।

उदाहरण 5: तर्क मूल्यों को सूची के रूप में समझें

यदि आप एक साथ कई मान प्राप्त करना चाहते हैं और उन्हें सूची में संग्रहीत करना चाहते हैं, तो आपको निम्न प्रारूप में nargs कीवर्ड की आपूर्ति करने की आवश्यकता है:

आयातअर्गपारसे

पार्सर =अर्गपार्स।तर्क पार्सर(विवरण='एक परीक्षण कार्यक्रम।')

पार्सर.add_argument('-पी', '--प्रिंट_स्ट्रिंग', मदद='आपूर्ति किए गए तर्क को प्रिंट करता है।',नर्गस='*')

args= पार्सर.parse_args()

प्रिंट(तर्कप्रिंट_स्ट्रिंग)

उपरोक्त कोड का परीक्षण करने के लिए निम्न आदेश चलाएँ:

$./परीक्षण.पीयू-पी ए बी

आपको इस तरह कुछ आउटपुट मिलना चाहिए:

['ए', 'बी']

निष्कर्ष

कमांड लाइन अनुप्रयोगों के व्यवहार को बदलने और उपयोगकर्ता द्वारा प्रदत्त मूल्यों को पार्स करने के लिए कई विकल्पों के साथ argparse मॉड्यूल बहुत व्यापक है। ये उदाहरण केवल argparse मॉड्यूल के मूल उपयोग को छूते हैं। उन्नत और जटिल अनुप्रयोगों के लिए, आपको विभिन्न कार्यान्वयनों की आवश्यकता हो सकती है। दौरा करना आधिकारिक दस्तावेज मॉड्यूल की पूरी व्याख्या के लिए।