ویدیو آموزش ماژول argparse پایتون
# معرفی argparse پایتون
ماژول argparse به شما کمک میکند ابزارهای command line بسازید. ماژول argparse به طور خودکار پیامهای راهنما و نحوه استفاده را تولید میکند و زمانی که کاربران آرگومانهای نامعتبر به برنامه میدهند، خطاهای مناسبی را نشان میدهد. ماژول argparse جزوی از کتابخانه استاندارد پایتون است و شما نیازی به نصب آن ندارید.
نحوه استفاده از ماژول argparse بسیار ساده است. به مثال زیر دقت کنید:
import argparse
parser = argparse.ArgumentParser()
parser.parse_args()
این سادهترین کدی هست که میتونید در argparse بنویسید.
- در خط اول ماژول argparse رو import کردیم.
- در خط دوم از کلاس ArgumentParser یک آبجکت ساختیم که وظیفه اضافه کردن آروگومانها رو داره.
- در خط سوم با آبجکتی که ساخته بودیم، متد parse_args رو صدا زدیم که وظیفه آماده کردن آرگومانها رو داره.
# اضافه کردن آرگومان به argparse پایتون
در حال حاضر کد ما هیچ آرگومانی نداره و اگر براش آرگومانی ارسال کنید، ارور میده:
$ python test.py amir
# OUTPUT
usage: two.py [-h]
two.py: error: unrecognized arguments: amir
در کد بالا میبینید که من آرگومان amir رو براش فرستادم اما کد ارور میده که ما همچین آرگومانی نمیخواستیم. جالب اینجاست که ماژول argparse به طور اتوماتیک برای ما help رو ایجاد میکنه. اگر همون کد بالا رو با آپشن h- اجرا کنید به شما راهنما رو نشون میده:
$ python test -h
# OUTPUT
usage: two.py [-h]
optional arguments:
-h, --help show this help message and exit
اضافه کردن آرگومان به برنامه خیلی راحته. فقط کافیه متد add_argument رو صدا بزنید و اسم آرگومانتون رو مشخص کنید. در کد پایین من یک آرگومان به نام name اضافه کردم:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('name')
parser.parse_args()
حالا اگر به کد بالا آرگومان ارسال کنم دیگه ارور نمیده. چون انتظار یه آرگومان رو داشته. و اگر در این حالت دوباره راهنما رو درخواست کنید به طور اتوماتیک آرگومان name اضافه شده:
$ python test.py amir
$ python test.py -h
usage: two.py [-h] name
positional arguments:
name
optional arguments:
-h, --help show this help message and exit
در صفحه راهنما که بالا هست فقط اسم آرگومان رو نوشته و نگفته که به چه دردی میخوره. اگر بخواید برای هر آرگومانی یک توضیح اضافه کنید میتونید help رو به add_argument بفرستید:
parser.add_argument('name', help='your name')
$ python test.py -h
usage: two.py [-h] name
positional arguments:
name your name
optional arguments:
-h, --help show this help message and exit
# گرفتن آرگومان argparse پایتون
الآن ما یک آرگومان اضافه کردیم و میخوایم باهاش کار کنیم. برای اینکار باید parse_args رو بریزیم داخل متغیر و از اون متغیر برای دسترسی به آرگومانها استفاده کنیم:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('name', help='your name')
args = parser.parse_args()
print(args.name)
در کد بالا میبینید که parse_args رو ریختم داخل متغیر args و با اون میتونم به آرگومانها دسترسی پیدا کنم. حالا کد بالا رو با یک آرگومان اجرا میکنم:
$ python test.py amir
>>> amir
میبیند که اسم خودم رو بهش فرستادم و اون هم چاپش کرد.
# کار با چند آرگومان در argparse پایتون
شما میتونید هر چند تعداد که میخواید آرگومان در ماژول argparse پایتون مشخص کنید. من به کد بالا یک آرگومان age هم اضافه میکنم:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('name', help='your name')
parser.add_argument('age', help='your age')
args = parser.parse_args()
print(args.name, args.age)
و حالا باید کد بالا رو با دو آرگومان اجرا کنم. اگر با یک آرگومان اجرا کنم ارور میده:
$ python test.py amir 20
>>> amir 20
$ python test.py amir
usage: two.py [-h] name age
two.py: error: the following arguments are required: age
# اختیاری کردن آرگومان در argparse پایتون
در حال حاضر در کد ما دو آرگومان وجو دارد که هر دو اجباری هستند. اگر بخواید آرگومانها رو اختیاری کنید کافیه یک یا دو تا خط تیره (-) به اول اسمش اضافه کنید. در کد پایین قبل از آرگومان name یک خط تیره گذاشتم که باعث میشه این آرگومان از حالت اجباری خارج بشه:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-name', help='your name')
parser.add_argument('age', help='your age')
args = parser.parse_args()
print(args.name, args.age)
در این حالت اگر صفحه راهنما کد رو بگیرم نتیجه به شکل پایین خواهد بود. میبینید که آرگومان name در بخش optionalها قرار گرفته:
$ python test.py -h
usage: two.py [-h] [-name NAME] age
positional arguments:
age your age
optional arguments:
-h, --help show this help message and exit
-name NAME your name
اگر ویدیو بالا را دوست داشتید، پیشنهاد میکنیم به مطالب زیر هم سر بزنید:
ارسال نظر