কম্পিউটার টিউটোরিয়াল

পাইথনে কমান্ড লাইন আর্গুমেন্ট (argparse) ব্যবহার করা


argparse মডিউল

পাইথনের argparse মডিউল কমান্ড লাইন আর্গুমেন্ট পার্স করার জন্য স্ট্যান্ডার্ড লাইব্রেরি। ইউজার ইনপুট, ফ্ল্যাগ, অপশন হ্যান্ডলিং সহজ করে দেয়।

বেসিক স্ট্রাকচার


import argparse

def get_args():
    parser = argparse.ArgumentParser(
        description='Description of program',
        formatter_class=argparse.ArgumentDefaultsHelpFormatter
    )
    
    # পজিশনাল আর্গুমেন্ট
    parser.add_argument('player', metavar='PLAYER', type=str, help='Tennis player name')
    
    # অপশনাল আর্গুমেন্ট (--flag)
    parser.add_argument('--titles', '-t', type=int, default=0, help='Grand slam titles')
    
    return parser.parse_args()

def main(player, titles):
    print(f"The {player} had won {titles} grand slam titles.")

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

আর্গুমেন্ট টাইপ

টাইপসিনট্যাক্সউদাহরণ
Positionalparser.add_argument('name')python script.py federer
Optional (flag)parser.add_argument('--name', '-n')python script.py --name federer
Boolean flagparser.add_argument('--verbose', action='store_true')python script.py --verbose
Choiceparser.add_argument('--mode', choices=['train', 'test'])python script.py --mode train
Nargs (multiple)parser.add_argument('files', nargs='+')python script.py a.txt b.txt

পূর্ণ উদাহরণ: দুইটি পজিশনাল আর্গুমেন্ট


import argparse

def get_args():
    parser = argparse.ArgumentParser(
        description='Tennis player stats',
        formatter_class=argparse.ArgumentDefaultsHelpFormatter
    )
    parser.add_argument('player', metavar='player', type=str, help='Tennis Player')
    parser.add_argument('titles', metavar='titles', type=int, help='Grand slam titles')
    return parser.parse_args()

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 script.py
usage: script.py [-h] player titles
script.py: error: the following arguments are required: player, titles

$ python script.py federer 20
*** The federer had won 20 grandslam titles. ***

$ python script.py -h
usage: script.py [-h] player titles
Tennis player stats
positional arguments:
  player      Tennis Player
  titles      Grand slam titles

উন্নত ফিচার

  • subparsers — সাবকম্যান্ড (git style: git commit, git push)
  • mutually_exclusive_group — একসাথে একটিই আউটপুট
  • type=Path (Python 3.4+) — ফাইল পাথ ভ্যালিডেশন
  • default=, const=, nargs='?' — ফ্লেক্সিবল ডিফল্ট

উপসংহার

  • argparse হলো পাইথনের স্ট্যান্ডার্ড CLI পার্সার
  • হেল্প মেসেজ অটো জেনারেট হয়
  • টাইপ চেকিং, ভ্যালিডেশন, ডিফল্ট ভ্যালু বিল্ট-ইন
  • বড় CLI টুলের জন্য click বা typer লাইব্রেরি পরামর্শ করা হয়
  1. পাইথন plt.title-এ ভেরিয়েবল যোগ করা

  2. পাইথনে Matplotlib চার্টে লেজেন্ড যোগ করার টিউটোরিয়াল

  3. Windows Terminal-এ কাস্টম কমান্ড লাইন যোগ করার পদ্ধতি

  4. Python-এ Path কীভাবে অ্যাড করবেন?