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)
আর্গুমেন্ট টাইপ
| টাইপ | সিনট্যাক্স | উদাহরণ |
|---|---|---|
| Positional | parser.add_argument('name') | python script.py federer |
| Optional (flag) | parser.add_argument('--name', '-n') | python script.py --name federer |
| Boolean flag | parser.add_argument('--verbose', action='store_true') | python script.py --verbose |
| Choice | parser.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লাইব্রেরি পরামর্শ করা হয়