[Python argparse का पूर्ण गाइड] कमांड-लाइन आर्ग्युमेंट्स को पार्स करने से लेकर उन्नत अनुप्रयोगों तक

目次

1. argparse क्या है? पायथन में बुनियादी उपयोग

argparse क्या है?

argparse एक मानक पायथन लाइब्रेरी है जो कमांड‑लाइन तर्कों (command‑line arguments) को संभालने के लिए डिज़ाइन की गई है। यह उपयोगकर्ताओं को प्रोग्राम चलाते समय कमांड‑लाइन तर्क आसानी से निर्दिष्ट करने, उन्हें पार्स करने और प्रोग्राम के व्यवहार को लचीले ढंग से अनुकूलित करने की सुविधा देती है। उदाहरण के लिए, उपयोगकर्ता फ़ाइल पाथ या कॉन्फ़िगरेशन विकल्प कमांड‑लाइन के माध्यम से दे सकते हैं, जिससे उपयोगकर्ता‑मित्र CLI टूल बनाना सरल हो जाता है।

import argparse

parser = argparse.ArgumentParser(description="File processing program")
parser.add_argument("input_file", help="Path to the file to be processed")
args = parser.parse_args()

print(f"Processing file: {args.input_file}")

इस कोड में, उपयोगकर्ता कमांड‑लाइन के माध्यम से input_file के रूप में एक फ़ाइल पाथ प्रदान करता है, जिसे फिर प्रदर्शित किया जाता है। प्रक्रिया सरल है: add_argument से तर्क परिभाषित करें और parse_args() से उन्हें पार्स करें।

Ad

2. argparse का उपयोग क्यों करें? CLI टूल्स के लिए सबसे अच्छा विकल्प

CLI टूल क्या है?

CLI (Command Line Interface) टूल वह प्रोग्राम है जिसे सीधे कमांड‑लाइन से चलाया जाता है, जो सिस्टम प्रशासन, डेटा प्रोसेसिंग और ऑटोमेशन के लिए विशेष रूप से उपयोगी होता है। पायथन में CLI टूल बनाते समय argparse अत्यंत सहायक होता है क्योंकि यह तर्कों के प्रबंधन, त्रुटि संभालने और मदद संदेश (help message) उत्पन्न करने को स्वचालित करता है।

argparse के लाभ

  • लचीला तर्क कॉन्फ़िगरेशन : आवश्यक और वैकल्पिक तर्कों को आसानी से परिभाषित करें, जिससे आप एक उपयोगकर्ता‑मित्र प्रोग्राम डिज़ाइन कर सकें।
  • स्वचालित त्रुटि संभालना : यदि तर्क अनुपलब्ध हैं या अमान्य मान प्रदान किए गए हैं, तो argparse स्वतः एक त्रुटि संदेश उत्पन्न करता है।
  • मदद संदेश : डिफ़ॉल्ट रूप से, argparse एक --help विकल्प प्रदान करता है, जिससे उपयोगकर्ता यह देख सकें कि प्रोग्राम का उपयोग कैसे किया जाता है।

निम्न उदाहरण दर्शाता है कि --help विकल्प CLI टूल के लिए उपयोग निर्देश कैसे प्रदर्शित करता है:

$ python script.py --help
usage: script.py [-h] input_file

positional arguments:
  input_file  File to be processed

optional arguments:
  -h, --help  show this help message and exit

Ad
侍エンジニア塾

3. argparse की बुनियादी संरचना: चरण-दर-चरण गाइड

ArgumentParser बनाना

तर्कों को पार्स करने के लिए, पहले एक ArgumentParser ऑब्जेक्ट बनाएं। यह ऑब्जेक्ट प्रोग्राम का विवरण (description) और उपयोग (usage) निर्धारित करता है।

parser = argparse.ArgumentParser(description="File processing program")

तर्क (Arguments) जोड़ना

अगले चरण में, तर्क जोड़ने के लिए add_argument() का उपयोग करें। आप यह निर्दिष्ट कर सकते हैं कि कोई तर्क आवश्यक है या वैकल्पिक। अतिरिक्त रूप से, help पैरामीटर के माध्यम से एक विवरण भी जोड़ सकते हैं।

parser.add_argument("input_file", type=str, help="Specify the input file")
parser.add_argument("--verbose", action="store_true", help="Enable detailed output")

तर्क (Arguments) को पार्स करना

अंत में, तर्कों को पार्स करने के लिए parse_args() मेथड का उपयोग करें। प्रदान किए गए कमांड‑लाइन तर्क args ऑब्जेक्ट में संग्रहीत हो जाएंगे।

args = parser.parse_args()
Ad

4. उदाहरण: argparse का उपयोग करने वाला एक सरल पायथन प्रोग्राम

बुनियादी उदाहरण

निम्नलिखित एक सरल उदाहरण है जिसमें argparse का उपयोग करके एक CLI टूल बनाया गया है जो फ़ाइलनाम और वैकल्पिक वर्बोज़ मोड स्वीकार करता है।

import argparse

parser = argparse.ArgumentParser(description="File processing program")
parser.add_argument("file", help="Specify the file path")
parser.add_argument("--verbose", action="store_true", help="Enable detailed output")

args = parser.parse_args()

if args.verbose:
    print(f"Processing file '{args.file}' in verbose mode")
else:
    print(f"Processing file '{args.file}'")

यह प्रोग्राम --verbose विकल्प का उपयोग करके विस्तृत आउटपुट मोड और सामान्य मोड के बीच स्विच करता है।

Ad
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

5. argparse की प्रमुख विशेषताएँ जो आपको जाननी चाहिए

परस्पर अनन्य तर्क (Mutually Exclusive Arguments)

परस्पर अनन्य तर्क यह सुनिश्चित करते हैं कि कुछ तर्क एक साथ उपयोग नहीं किए जा सकते। उदाहरण के लिए, यदि आप --foo और --bar दोनों को एक साथ निर्दिष्ट होने से रोकना चाहते हैं, तो आप इस सुविधा का उपयोग कर सकते हैं।

parser = argparse.ArgumentParser(description="Example of mutually exclusive arguments")
group = parser.add_mutually_exclusive_group()
group.add_argument("--foo", action="store_true", help="Enable foo")
group.add_argument("--bar", action="store_true", help="Enable bar")

args = parser.parse_args()

उप‑आदेश

उप‑आदेशों का उपयोग करने से आप एक प्रोग्राम की कार्यक्षमता को कई कार्यों में व्यवस्थित कर सकते हैं। उदाहरण के लिए, आप एक ही प्रोग्राम के भीतर install और uninstall को अलग-अलग कमांड के रूप में उपयोग कर सकते हैं।

parser = argparse.ArgumentParser(description="Example of subcommands")
subparsers = parser.add_subparsers(dest="command")

install_parser = subparsers.add_parser('install')
install_parser.add_argument('package', help="Name of the package to install")

uninstall_parser = subparsers.add_parser('uninstall')
uninstall_parser.add_argument('package', help="Name of the package to uninstall")

args = parser.parse_args()

if args.command == "install":
    print(f"Installing package {args.package}")
elif args.command == "uninstall":
    print(f"Uninstalling package {args.package}")
Ad

6. argparse में त्रुटि प्रबंधन और डिबगिंग

स्वचालित त्रुटि संदेश

argparse स्वचालित रूप से त्रुटि संदेश उत्पन्न करता है जब आवश्यक तर्क अनुपलब्ध होते हैं या अमान्य मान प्रदान किए जाते हैं।

$ python script.py
usage: script.py [-h] --input INPUT
script.py: error: the following arguments are required: --input

कस्टम त्रुटि संदेश

कभी‑कभी, डिफ़ॉल्ट त्रुटि संदेश पर्याप्त नहीं होते। कस्टम संदेश जोड़कर आप अधिक स्पष्ट प्रतिक्रिया प्रदान कर सकते हैं।

parser = argparse.ArgumentParser(description="Example of custom error messages")
parser.add_argument("--input", required=True, help="Specify the input file")

try:
    args = parser.parse_args()
except argparse.ArgumentError as err:
    print(f"Error: {err}")

Ad

7. argparse के वास्तविक‑विश्व अनुप्रयोग

ऑटोमेशन टूल्स में argparse का उपयोग

argparse फ़ाइल प्रोसेसिंग और डेटा विश्लेषण शामिल करने वाले ऑटोमेशन टूल्स के लिए आदर्श है। उपयोगकर्ता कमांड लाइन के माध्यम से फ़ाइल पथ और प्रोसेसिंग मोड निर्दिष्ट कर सकते हैं, जिससे टूल डिज़ाइन में लचीलापन आता है।

$ python data_processor.py --input data.csv --output results.json --verbose

बड़े पैमाने के प्रोजेक्ट्स में argparse का उपयोग

बड़े पैमाने के प्रोजेक्ट्स में, उप‑आदेशों और परस्पर अनन्य तर्कों को मिलाकर उपयोगिता में सुधार होता है। उदाहरण के लिए, पैकेज प्रबंधन प्रणालियाँ अक्सर एक ही टूल में install और remove जैसे कमांड का उपयोग करती हैं।

$ python package_manager.py install package_name

argparse का उपयोग करके आप उपयोगकर्ता‑मित्र प्रणाली बना सकते हैं, साथ ही कोड की पुन: उपयोगिता और रखरखाव क्षमता को भी सुधार सकते हैं।

Ad

8. निष्कर्ष

argparse का उपयोग करके आप अपने Python प्रोग्रामों में एक लचीला और शक्तिशाली कमांड‑लाइन इंटरफ़ेस (CLI) लागू कर सकते हैं। आवश्यक और वैकल्पिक तर्क, उप‑आदेश, और परस्पर अनन्य तर्क जैसी सुविधाएँ उपयोगकर्ता‑मित्र और प्रबंधनीय प्रोग्राम डिज़ाइन को आसान बनाती हैं। यह विशेष रूप से बड़े पैमाने के प्रोजेक्ट्स और ऑटोमेशन परिदृश्यों में उपयोगी है।

वास्तविक‑विश्व अनुप्रयोगों और प्रदर्शन विचारों को समझने से आप अपने प्रोग्रामों को और अधिक अनुकूलित कर सकते हैं। साथ ही, त्रुटि प्रबंधन और सर्वोत्तम प्रथाओं को लागू करने से आप ऐसे टूल बना सकते हैं जो उपयोगकर्ताओं को त्रुटियों की पहचान अधिक कुशलता से करने में मदद करते हैं।

यदि आपके कोई प्रश्न हों, तो बेझिझक पूछें!

Ad
年収訴求