چطور میشه در argparse آرگومانهای انتخابی و موقعیتی (اختیاری) رو مدیریت کرد؟
How to handle optional positional arguments in argparse?
در حال استفاده از کتابخانه argparse در پایتون هستم و میخوام که یک آرگومان اختیاری و موقعیتی به اسکریپتم اضافه کنم. چطور میتونم این کار رو انجام بدم؟ راهی هست که بتونم بدون اینکه این آرگومان رو به عنوان ورودی وارد کنم، باز هم اسکریپت اجرا بشه؟
برای اضافه کردن آرگومانهای اختیاری و موقعیتی در argparse، باید از ترکیبی از nargs و default استفاده کنی. اینجوری میتونی آرگومانهایی رو تعریف کنی که اگر وارد نشدن، اسکریپت همچنان به خوبی کار کنه. بذار یه مثال ساده برات بزنم:
import argparse # create parser parser = argparse.ArgumentParser() parser.add_argument('my_arg', nargs='?', default='default_value', help='This is an optional positional argument') args = parser.parse_args() print(f"The value of my_arg is: {args.my_arg}")
ما یه آرگومان به اسم my_arg تعریف کردیم که اگر وارد نشه، مقدار پیشفرضش "default_value" خواهد بود.
نکته مهم اینه که با استفاده از nargs='?' مشخص میکنیم که این آرگومان میتونه وارد بشه یا نشه، و اگر وارد نشد، مقدار پیشفرضی که تو default تعریف کردیم استفاده میشه.
پس، اگر اسکریپت رو اجرا کنی بدون اینکه هیچ آرگومانی بهش بدی، مقدار پیشفرض چاپ میشه. اما اگر یک مقدار به my_arg بدی، همون مقدار وارد شده چاپ میشه.