प्रत्येक प्रोग्रामिंग भाषा में स्क्रिप्ट बनाने और उन्हें टर्मिनल से चलाने या अन्य कार्यक्रमों द्वारा बुलाए जाने की सुविधा होती है। ऐसी स्क्रिप्ट चलाते समय हमें अक्सर स्क्रिप्ट के भीतर निष्पादित किए जाने वाले विभिन्न कार्यों के लिए स्क्रिप्ट द्वारा आवश्यक तर्कों को पारित करने की आवश्यकता होती है। इस लेख में हम देखेंगे कि पायथन लिपि में तर्कों को पारित करने के विभिन्न तरीके क्या हैं।
sys.argv का उपयोग करना
यह एक इनबिल्ट मॉड्यूल है sys.argv उन तर्कों को संसाधित कर सकता है जो स्क्रिप्ट के साथ पारित किए जाते हैं। डिफ़ॉल्ट रूप से पहला तर्क जिसे sys.argv[0] पर माना जाता है, वह फ़ाइल नाम है। शेष तर्कों को 1,2 और इसी तरह अनुक्रमित किया जाता है। नीचे दिए गए उदाहरण में हम देखते हैं कि कैसे एक स्क्रिप्ट उस पर दिए गए तर्कों का उपयोग करती है।
import sys
print(sys.argv[0])
print("Hello ",sys.argv[1],", welcome!") हम उपरोक्त स्क्रिप्ट को चलाने और निम्नलिखित परिणाम प्राप्त करने के लिए नीचे दिए गए कदम उठाते हैं:
उपरोक्त कोड को चलाने के लिए हम टर्मिनल विंडो पर जाते हैं और नीचे दिखाए गए कमांड को लिखते हैं। यहाँ स्क्रिप्ट का नाम args_demo.py है। हम इस स्क्रिप्ट के लिए मान सामंथा के साथ एक तर्क देते हैं।
D:\Pythons\py3projects>python3 args_demo.py Samantha args_demo.py Hello Samantha welcome!
गेटटॉप का उपयोग करना
यह एक और दृष्टिकोण है जिसमें पिछले वाले की तुलना में अधिक लचीलापन है। यहां हम तर्कों के मूल्य को इकट्ठा कर सकते हैं और उन्हें त्रुटि प्रबंधन और अपवादों के साथ संसाधित कर सकते हैं। नीचे दिए गए कार्यक्रम में हम तर्कों को लेकर और पहले तर्क को छोड़ कर दो संख्याओं का गुणनफल पाते हैं जो कि फ़ाइल का नाम है। बेशक यहां sys मॉड्यूल का भी उपयोग किया जाता है।
उदाहरण
import getopt
import sys
# Remove the first argument( the filename)
all_args = sys.argv[1:]
prod = 1
try:
# Gather the arguments
opts, arg = getopt.getopt(all_args, 'x:y:')
# Should have exactly two options
if len(opts) != 2:
print ('usage: args_demo.py -x <first_value> -b <second_value>')
else:
# Iterate over the options and values
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 <first_value> -b <second_value>')
sys.exit(2) आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
D:\Pythons\py3projects >python3 args_demo.py -x 3 -y 12 Product of the two numbers is 36 # Next Run D:\Pythons\py3projects >python3 args_demo.py usage: args_demo.py -x <first_value> -b <second_value>
आर्गपार्स का उपयोग करना
यह वास्तव में तर्क पारित करने के लिए सबसे पसंदीदा मॉड्यूल है क्योंकि त्रुटियों और अपवादों को कोड की अतिरिक्त पंक्तियों की आवश्यकता के बिना मॉड्यूल द्वारा ही नियंत्रित किया जाता है। हमें प्रत्येक तर्क के लिए आवश्यक नाम हेल्प टेक्स्ट का उल्लेख करना होगा और फिर कोड के अन्य भागों में तर्क के नाम का उपयोग करना होगा।
उदाहरण
import argparse
# Construct an argument parser
all_args = argparse.ArgumentParser()
# Add arguments to the parser
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())
# Find the product
print("Product is {}".format(int(args['Value1']) * int(args['Value2']))) आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
D:\Pythons\py3projects>python3 args_demo.py -x 3 -y 21 Product is 63 # Next Run 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