از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
تجزیه مقادیر بولی با Argparse در پایتون
سرفصلهای مطلب
معرفی
در این بایت، ما پایتون را بررسی خواهیم کرد argparse
ماژول و اینکه چگونه می توانیم از آن برای تجزیه مقادیر بولی از خط فرمان استفاده کنیم. این اغلب زمانی استفاده می شود که در حال نوشتن یک ابزار خط فرمان یا حتی یک برنامه پیچیده تر هستید. درک کردن argparse
و عملکردهای آن می تواند زندگی شما را هنگام گرفتن ورودی از خط فرمان بسیار آسان تر کند.
ماژول آرگپارس
Argparse یک ماژول پایتون است که نوشتن را برای کاربر آسان می کند command-line رابط ها این argparse
ماژول می تواند آرگومان های موقعیتی، آرگومان های اختیاری و حتی دستورات فرعی را مدیریت کند. همچنین میتواند پیامهای استفاده و کمک ایجاد کند و زمانی که کاربران آرگومانهای نامعتبر به برنامه میدهند، خطا ایجاد کند.
Argparse از نسخه 2.7 بخشی از کتابخانه استاندارد پایتون بوده است، بنابراین برای شروع استفاده از آن نیازی به نصب هیچ چیز اضافی ندارید. برای جایگزینی قدیمیتر طراحی شده است optparse
ماژول، و رابط انعطاف پذیرتری را ارائه می دهد.
استفاده اساسی از Argparse
برای شروع استفاده از argparse، ابتدا باید آن را وارد کنید:
import argparse
بعد، یک را ایجاد می کنید parser
هدف – شی:
parser = argparse.ArgumentParser(description='My first argparse program.')
این ArgumentParser
شی تمام اطلاعات لازم برای تجزیه خط فرمان به انواع داده پایتون را در خود دارد. این description
استدلال به ArgumentParser
متنی است برای نمایش قبل از کمک آرگومان (the --help
متن).
برای افزودن آرگومان به برنامه خود، از add_argument()
روش:
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
در نهایت، می توانید آن را تجزیه کنید command-line استدلال با parse_args()
:
args = parser.parse_args()
print(args.accumulate(args.integers))
این خط فرمان را تجزیه میکند، هر آرگومان را به نوع مناسب تبدیل میکند و سپس هر اقدامی را که مشخص کردهاید فراخوانی میکند.
تجزیه مقادیر بولی
حال، بیایید ببینیم چگونه می توانیم مقادیر بولی را با آن تجزیه کنیم argparse
. برای این کار از داخلی استفاده می کنیم store_true
یا store_false
اقدامات. این اقدامات مقادیر را ذخیره می کند True
و False
به ترتیب.
import argparse
parser = argparse.ArgumentParser(description='Parse boolean values.')
parser.add_argument('--flag', dest='flag', action='store_true',
help='Set the flag value to True.')
parser.add_argument('--no-flag', dest='flag', action='store_false',
help='Set the flag value to False.')
parser.set_defaults(flag=True)
args = parser.parse_args()
print('Flag:', args.flag)
در این اسکریپت، ما دو مورد را تنظیم کرده ایم command-line گزینه ها: --flag
و --no-flag
. این --flag
مجموعه های گزینه args.flag
به True
، و --no-flag
گزینه آن را تنظیم می کند False
. اگر هیچ یک از گزینه ها داده نشد، set_defaults()
مجموعه های روش args.flag
به True
.
در اینجا روش عملکرد آن در خط فرمان آمده است:
$ python bool_argparse.py --flag
Flag: True
$ python bool_argparse.py --no-flag
Flag: False
$ python bool_argparse.py
Flag: True
همانطور که می بینید، argparse
تجزیه مقادیر بولی و حتی تنظیم مقادیر پیش فرض را آسان می کند. این می تواند در بسیاری از برنامه ها، از اسکریپت های ساده گرفته تا پیچیده تر، بسیار مفید باشد command-line رابط ها
روش های دیگر برای عبور مقادیر بولی از طریق CLI
علاوه بر store_true
و store_false
اقدامات، راه های دیگری وجود دارد که می توانید مقادیر بولی را با استفاده از رابط خط فرمان منتقل کنید. یکی از جایگزین های رایج این است که مقدار بولی را به عنوان یک رشته ارسال کنید و سپس این رشته را به یک بولی در اسکریپت خود تبدیل کنید.
بیایید مثال زیر را در نظر بگیریم:
import argparse
def str2bool(v):
if v.lower() in ('yes', 'true', 't', 'y', '1'):
return True
elif v.lower() in ('no', 'false', 'f', 'n', '0'):
return False
else:
raise argparse.ArgumentTypeError('Boolean value expected.')
parser = argparse.ArgumentParser()
parser.add_argument('--flag', type=str2bool, help='Boolean flag')
args = parser.parse_args()
print(args.flag)
در اینجا ما یک تابع کمکی را تعریف کرده ایم str2bool
که یک رشته را به یک مقدار بولی تبدیل می کند. با بررسی مقادیر رایج “درستی” و “کاذب” کار می کند.
سپس از این تابع به عنوان تابع استفاده می کنیم type
برای استدلال ما این به ما اجازه می دهد تا مقادیر بولی را به عنوان رشته ارسال کنیم، مانند این:
$ python script.py --flag yes
True
$ python script.py --flag no
False
نتیجه
در این بایت، چند مثال در مورد روش تجزیه مقادیر بولی با the نشان داده ایم argparse
ماژول در پایتون ما به کاربرد اساسی نگاه کردیم argparse
، روش تجزیه مقادیر بولی و چند گزینه جایگزین برای مدیریت مقادیر بولی. چه در حال نوشتن یک اسکریپت ساده برای استفاده شخصی یا یک برنامه پیچیده برای استفاده توسط دیگران هستید، argparse
یک ابزار مفید برای انعطاف پذیرتر و کاربرپسندتر کردن اسکریپت شما است.
(برچسبها به ترجمه)# python
منتشر شده در 1402-12-27 12:20:09