Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python में आर्गुमेंट पार्सिंग


हर प्रोग्रामिंग भाषा में स्क्रिप्ट बनाने और उन्हें टर्मिनल से चलाने या अन्य प्रोग्राम द्वारा कॉल करने की सुविधा होती है। ऐसी स्क्रिप्ट चलाते समय हमें अक्सर स्क्रिप्ट के अंदर विभिन्न फ़ंक्शन को निष्पादित करने के लिए आवश्यक आर्गुमेंट पास करने की आवश्यकता होती है। इस लेख में हम देखेंगे कि Python स्क्रिप्ट में आर्गुमेंट पास करने के विभिन्न तरीके क्या हैं।

sys.argv का उपयोग करना

यह एक अंतर्निहित मॉड्यूल है, sys.argv स्क्रिप्ट के साथ पास किए गए आर्गुमेंट को प्रोसेस कर सकता है। डिफ़ॉल्ट रूप से पहला आर्गुमेंट जिसे sys.argv[0] माना जाता है, वह फ़ाइल नाम होता है। बाकी आर्गुमेंट 1, 2, आदि के रूप में अनुक्रमित होते हैं। नीचे दिए गए उदाहरण में हम देखते हैं कि एक स्क्रिप्ट उस पर पास किए गए आर्गुमेंट का उपयोग कैसे करती है।

import sys print(sys.argv[0]) print("Hello ", sys.argv[1], ", welcome!")

हम उपरोक्त स्क्रिप्ट को चलाने और निम्नलिखित परिणाम प्राप्त करने के लिए नीचे दिए गए चरण लेते हैं:

उपरोक्त कोड को चलाने के लिए हम टर्मिनल विंडो पर जाते हैं और नीचे दिखाए गए कमांड को लिखते हैं। यहां स्क्रिप्ट का नाम args_demo.py है। हम इस स्क्रिप्ट को Samantha मान के साथ एक आर्गुमेंट पास करते हैं।

D:\Pythons\py3projects>python3 args_demo.py Samantha args_demo.py Hello Samantha welcome!

getopt का उपयोग करना

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

उदाहरण

import getopt import sys # पहला आर्गुमेंट (फ़ाइल नाम) हटाएं all_args = sys.argv[1:] prod = 1 try:     # आर्गुमेंट एकत्र करें     opts, arg = getopt.getopt(all_args, 'x:y:')     # ठीक दो विकल्प होने चाहिए     if len(opts) != 2:         print('usage: args_demo.py -x  -b ')     else:         # विकल्पों और मानों पर पुनरावृति         for opt, arg_val in opts:             prod *= int(arg_val)         print('Product of the two numbers is {}'.format(prod)) except getopt.GetoptError:     print('usage: args_demo.py -a  -b ')     sys.exit(2)

आउटपुट

उपरोक्त कोड चलाने से हमें निम्नलिखित परिणाम मिलता है -

D:\Pythons\py3projects >python3 args_demo.py -x 3 -y 12 Product of the two numbers is 36 # अगला रन D:\Pythons\py3projects >python3 args_demo.py usage: args_demo.py -x  -b 

argparse का उपयोग करना

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

उदाहरण

import argparse # एक आर्गुमेंट पार्सर बनाएं all_args = argparse.ArgumentParser() # पार्सर में आर्गुमेंट जोड़ें all_args.add_argument("-x", "--Value1", required=True, help="first Value") all_args.add_argument("-y", "--Value2", required=True, help="second Value") args = vars(all_args.parse_args()) # गुणनफल ढूंढें print("Product is {}".format(int(args['Value1']) * int(args['Value2'])))

आउटपुट

उपरोक्त कोड चलाने से हमें निम्नलिखित परिणाम मिलता है -

D:\Pythons\py3projects>python3 args_demo.py -x 3 -y 21 Product is 63 # अगला रन D:\Pythons\py3projects>python3 args_demo.py -x 3 -y usage: args_demo.py [-h] -x VALUE1 -y VALUE2 args_demo.py: error: argument -y/--Value2: expected one argument

  1. पायथन में XML पार्सिंग: ElementTree के साथ पायथन में XML पार्सिंग: ElementTree के साथ

    पायथन XML पार्सर XML फाइल से उपयोगी जानकारी पढ़ने और निकालने के सबसे आसान तरीकों में से एक प्रदान करता है। इस छोटे ट्यूटोरियल में हम देखेंगे कि कैसे हम पायथन ElementTree XML API का उपयोग करके XML फाइल को पार्स, संशोधित और बना सकते हैं। पायथन ElementTree API XML डेटा को निकालने, पार्स करने और ट्रांस

  1. - पायथन में एक्सेप्शन को आर्गुमेंट कैसे पास करें?

    एक एक्सेप्शन का एक आर्गुमेंट हो सकता है, जो एक वैल्यू है जो समस्या के बारे में अतिरिक्त जानकारी देता है। आर्गुमेंट की सामग्री एक्सेप्शन से एक्सेप्शन में भिन्न होती है। आप except क्लॉज में एक वेरिएबल सप्लाई करके एक्सेप्शन के आर्गुमेंट को कैप्चर करते हैं जैसा कि नीचे दिखाया गया है: उदाहरण try: b =

  1. - पायथन फंक्शन को फंक्शन आर्गुमेंट के रूप में कैसे पास करें?

    पायथन निम्न मेथड को लागू करता है जहां पहला पैरामीटर एक फंक्शन होता है: map(function, iterable, ...) - इटरेबल के प्रत्येक आइटम पर फंक्शन लागू करें और परिणामों की सूची लौटाएं। हम कस्टम फंक्शन्स भी लिख सकते हैं जहां हम फंक्शन को आर्गुमेंट के रूप में पास कर सकते हैं। दिए गए कोड को map मेथड का उपयोग करके