ماژول argparse به شما کمک میکند ابزارهای command line بسازید. ماژول argparse به طور خودکار پیامهای راهنما و نحوه استفاده را تولید میکند و زمانی که کاربران آرگومانهای نامعتبر به برنامه میدهند، خطاهای مناسبی را نشان میدهد. ماژول argparse جزوی از کتابخانه استاندارد پایتون است و شما نیازی به نصب آن ندارید.
نحوه استفاده از ماژول argparse بسیار ساده است. به مثال زیر دقت کنید:
import argparse parser = argparse.ArgumentParser() parser.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
الآن ما یک آرگومان اضافه کردیم و میخوایم باهاش کار کنیم. برای اینکار باید 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 پایتون مشخص کنید. من به کد بالا یک آرگومان 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
در حال حاضر در کد ما دو آرگومان وجو دارد که هر دو اجباری هستند. اگر بخواید آرگومانها رو اختیاری کنید کافیه یک یا دو تا خط تیره (-) به اول اسمش اضافه کنید. در کد پایین قبل از آرگومان 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
آم
اگر این ویدیو رو دوست داشتید، برای آموزشهای پیشرفته پایتون به وبسایت ما سر بزنید: