ویدیو آموزش ماژول argparse پایتون

امیرحسین بیگدلو June 2023

 #  معرفی 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

 

 

اگر ویدیو بالا را دوست داشتید، پیشنهاد میکنیم به مطالب زیر هم سر بزنید:

دوره آموزش پایتون (python)

GIL پایتون چیست؟

راهنمایی کامل پایتون و rest api

آموزش متد reversed در پایتون

ویدیوهای مشابه



ارسال نظر


فعلا نظری برای نمایش وجود ندارد
مونگارد