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