وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

تجزیه مقادیر بولی با Argparse در پایتون

0 48
زمان لازم برای مطالعه: 3 دقیقه


معرفی

در این بایت، ما پایتون را بررسی خواهیم کرد 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

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید