কম্পিউটার

পাইথনে কমান্ড লাইন আর্গুমেন্ট কিভাবে যোগ করবেন?


পরিচয়..

পাইথনের একটি খুব শক্তিশালী আর্গপার্স মডিউল রয়েছে যা কমান্ড লাইন আর্গুমেন্ট পার্স করার জন্য ফাংশন প্রদান করে। আমরা যদি অনেক ইন্টারঅ্যাকশন ছাড়াই ওএস কমান্ড লাইন থেকে ব্যবহারকারীর ইনপুট পেতে চাই বা এমন একটি প্রোগ্রাম কোড করতে চাই যা কমান্ড লাইন থেকে প্যারামিটার গ্রহণ করে যেমন পার্স করার জন্য একটি URL প্রদান করুন বা একটি S3 বালতিতে আপলোড করার জন্য ফাইলটি গ্রহণ করুন তারপরে ন্যূনতম প্রচেষ্টার সাথে argparse ব্যবহার করা যেতে পারে৷

মৌলিক ব্যবহার

  • আপনার কোড যে যুক্তিগুলি গ্রহণ করতে চলেছে তা সংজ্ঞায়িত করুন৷

  • ফলাফল অবজেক্ট ফেরত দিতে আর্গুমেন্ট পার্সারকে কল করুন।

  • আর্গুমেন্ট ব্যবহার করুন।

সংক্ষেপে, আর্গুমেন্ট পার্সারের গঠন নিচের মত কিছু দেখায়।

def main( parameters):
<< Logic here >>

if __name__ == '__main__':
<< 1. Define argument parser >>
<< 2. Parse the arguements >>
<< 3. Validation >>
<< 4. call main (parameters) >>

প্রধান ফাংশন জানে আমাদের কোডের এন্ট্রি পয়েন্ট কি। __name__ =='__main__' বিভাগটি শুধুমাত্র কোডটি সরাসরি কল করলেই চালানো হয়।

  • একটি প্রোগ্রাম তৈরি করুন যা শুধুমাত্র একটি যুক্তি গ্রহণ করবে - স্ট্রিং হিসাবে টেনিস খেলোয়াড়।

import argparse

def get_args():
""" Function : get_args
parameters used in .add_argument
1. metavar - Provide a hint to the user about the data type.
- By default, all arguments are strings.

2. type - The actual Python data type
- (note the lack of quotes around str)

3. help - A brief description of the parameter for the usage

"""

parser = argparse.ArgumentParser(
description='Example for Two positional arguments',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)

# Adding our first argument player name of type string
parser.add_argument('player',
metavar='player',
type=str,
help='Tennis Player')

return parser.parse_args()

# define main
def main(player):
print(f" *** The {player} had won 20 grandslam titles.")

if __name__ == '__main__':
args = get_args()
main(args.player)

ক) এখন আপনি যখন কোনো প্যারামিটার পাস না করেই কমান্ড লাইন থেকে এই প্রোগ্রামটি চালান, যেমন কিছু না দিলে, এটি প্রোগ্রামটি শুরু করার সঠিক উপায় সম্পর্কে একটি সংক্ষিপ্ত ব্যবহারের বিবৃতি প্রিন্ট করবে৷

In [3]: run <>.ipynb
usage: ipython [-h] player
ipython: error: the following arguments are required: player
An exception has occurred, use %tb to see the full traceback.

খ) যদি আমরা একাধিক যুক্তি প্রদান করি, তবে এটি আবার অভিযোগ করে৷ প্রোগ্রামটি একটি দ্বিতীয় যুক্তি পাওয়ার বিষয়ে অভিযোগ করে যা সংজ্ঞায়িত করা হয়নি৷

গ) শুধুমাত্র যখন আমরা প্রোগ্রামকে ঠিক একটি আর্গুমেন্ট দিই তখনই এটি চলবে

2. একটি প্রোগ্রাম তৈরি করুন যা শুধুমাত্র দুটি যুক্তি গ্রহণ করবে - টেনিস খেলোয়াড়দের স্ট্রিং হিসাবে এবং গ্র্যান্ড স্ল্যাম টাইটেল পূর্ণসংখ্যা হিসাবে প্লেয়ার জিতেছে৷

উদাহরণ

import argparse

def get_args():
""" Function : get_args
parameters used in .add_argument
1. metavar - Provide a hint to the user about the data type.
- By default, all arguments are strings.

2. type - The actual Python data type
- (note the lack of quotes around str)

3. help - A brief description of the parameter for the usage

"""

parser = argparse.ArgumentParser(
description='Example for Two positional arguments',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)

# Adding our first argument player name of type string
parser.add_argument('player',
metavar='player',
type=str,
help='Tennis Player')

# Adding our second argument player titles of type integer/number.
parser.add_argument('titles',
metavar='titles',
type=int,
help='Tennis Player Grandslam Titles')

return parser.parse_args()

# define main
def main(player, titles):
print(f" *** The {player} had won {titles} grandslam titles.")

if __name__ == '__main__':
args = get_args()
main(args.player, args.titles)

এখন আপনার টার্মিনাল খুলুন এবং প্রোগ্রামটি চালান। আর্গুমেন্ট পাস না হলে, স্ক্রিপ্ট পরিষ্কার বার্তা সহ ত্রুটি থ্রো ব্যাক।

আউটপুট

<<< python test.py
usage: test.py [-h] player titles
test.py: error: the following arguments are required: player, titles

<<< python test.py federer 20
*** The federer had won 20 grandslam titles.

  1. কিভাবে Python plt.title এ একটি ভেরিয়েবল যোগ করবেন?

  2. পাইথনে চার্টে কিংবদন্তি কীভাবে যুক্ত করবেন?

  3. উইন্ডোজ টার্মিনালে কাস্টম কমান্ড লাইন কীভাবে যুক্ত করবেন

  4. কিভাবে পাইথনে পাথ যোগ করবেন?