কম্পিউটার

পাইথনে আর্গুমেন্ট পার্সিং


প্রতিটি প্রোগ্রামিং ভাষার স্ক্রিপ্ট তৈরি করার এবং টার্মিনাল থেকে চালানো বা অন্য প্রোগ্রাম দ্বারা কল করার বৈশিষ্ট্য রয়েছে। এই ধরনের স্ক্রিপ্ট চালানোর সময় আমাদের প্রায়ই স্ক্রিপ্টের ভিতরে বিভিন্ন ফাংশন চালানোর জন্য স্ক্রিপ্টের প্রয়োজনীয় আর্গুমেন্টগুলি পাস করতে হয়। এই প্রবন্ধে আমরা দেখতে পাব যে পাইথন স্ক্রিপ্টে আর্গুমেন্ট পাস করার বিভিন্ন উপায় কী।

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!

getopt ব্যবহার করা

এটি অন্য একটি পদ্ধতি যা আগেরটির তুলনায় আরও নমনীয়তা রয়েছে। এখানে আমরা আর্গুমেন্টের মান সংগ্রহ করতে পারি এবং ত্রুটি পরিচালনা এবং ব্যতিক্রম সহ সেগুলি প্রক্রিয়া করতে পারি। নীচের প্রোগ্রামে আমরা আর্গুমেন্টগুলি নিয়ে এবং ফাইলের নামটি প্রথম আর্গুমেন্টটি এড়িয়ে যাওয়ার মাধ্যমে দুটি সংখ্যার গুণফল খুঁজে পাই। অবশ্যই 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

  1. পাইথনে XML পার্সিং?

  2. পাইথনে ডিফল্ট আর্গুমেন্ট কি?

  3. পাইথন ফাংশনে যুক্তি হিসাবে একটি অভিধান কীভাবে পাস করবেন?

  4. কিভাবে একটি ফাংশন আর্গুমেন্ট হিসাবে পাইথন ফাংশন পাস?