سطح مقدماتی (Beginner Level)
بسیاری از اسکریپتهای پایتون قرار نیست همیشه از داخل محیط برنامهنویسی (IDE) اجرا شوند. گاهی نیاز داریم برنامه را از طریق ترمینال (Terminal/CMD) اجرا کنیم و مقادیری را به عنوان ورودی به آن بدهیم. به این مقادیر آرگومانهای خط فرمان (Command Line Arguments) میگویند.
۱. استفاده از sys.argv (روش سنتی)
سادهترین راه برای دسترسی به آرگومانها، استفاده از ماژول sys و لیست argv است. این لیست تمام کلماتی که در خط فرمان تایپ شدهاند را در خود نگه میدارد.
نکته: اولین آیتم (argv[0]) همیشه نام خود فایل اسکریپت است.
مثال ۱: چاپ تمام آرگومانها
در این مثال، لیست خام ورودیها را میبینیم.
مثال ۲: جمع دو عدد با sys.argv
از آنجا که ورودیها همیشه رشته (String) هستند، باید آنها را تبدیل کنیم.
۲. معرفی ماژول argparse
استفاده از sys.argv برای برنامههای پیچیده سخت است (چون باید دستی چک کنید کاربر چه چیزی وارد کرده). ماژول استاندارد argparse این کار را به صورت حرفهای انجام میدهد و حتی راهنما (Help) را خودکار میسازد.
مثال ۱: ساخت یک پارسر ساده
این کد به طور خودکار فلگ --help را پشتیبانی میکند.
مثال ۲: آرگومانهای عددی
میتوانیم نوع داده (type) را مشخص کنیم تا پایتون خودکار تبدیل را انجام دهد و اگر کاربر رشته وارد کرد، خطا دهد.
سطح پیشرفته (Professional Level)
در برنامههای حرفهای (CLI Tools)، نیاز به مدیریت آرگومانهای اختیاری (Flags)، مقادیر پیشفرض، محدود کردن انتخابها و سابکامندها (Sub-commands) داریم.
۱. آرگومانهای اختیاری (Flags) و کوتاه
آرگومانهایی که با - یا -- شروع میشوند، اختیاری هستند. برخلاف آرگومانهای موقعیتی (Positional)، ترتیب آنها مهم نیست.
مثال ۱: استفاده از نام کوتاه و بلند
مثال ۲: مقدار پیشفرض (Default)
اگر کاربر مقداری وارد نکند، از مقدار پیشفرض استفاده میشود.
۲. محدود کردن ورودیها (Choices)
گاهی میخواهیم کاربر فقط اجازه داشته باشد مقادیر خاصی را انتخاب کند.
مثال ۱: انتخاب فرمت فایل
۳. سابکامندها (Sub-commands)
ابزارهای پیشرفته مثل git دستورات تو در تو دارند (مثل git commit, git push).
مثال ۱: پیادهسازی دستورات ریاضی
۴. گروهبندی آرگومانهای ناسازگار (Mutually Exclusive)
زمانی استفاده میشود که کاربر نباید دو آپشن را همزمان استفاده کند (مثلاً نمیتوان همزمان "سکوت" و "پرگو" بود).