Python argparse गाइड: कमाण्डलाइन आर्गुमेन्टको विश्लेषण

目次

1. argparse भनेको के हो? Python मा आधारभूत प्रयोग

argparse भनेको के हो

argparse Python को मानक पुस्तकालय हो र कमाण्ड‑लाइन आर्गुमेन्टहरूलाई प्रक्रिया गर्ने उपकरण हो। प्रोग्राम चलाउँदा, प्रयोगकर्ताले निर्दिष्ट गर्ने कमाण्ड‑लाइन आर्गुमेन्टहरूलाई सजिलै प्राप्त गरी, विश्लेषण गरी, प्रोग्रामको व्यवहारलाई लचिलो रूपमा अनुकूलन गर्न सकिन्छ। उदाहरणका लागि, फाइलको पथ वा सेटिङ विकल्पहरूलाई कमाण्ड‑लाइनबाट निर्दिष्ट गर्न सकिएमा, प्रयोगमैत्री CLI उपकरण निर्माण गर्न सकिन्छ।
import argparse

parser = argparse.ArgumentParser(description="फाइल प्रक्रिया कार्यक्रम")
parser.add_argument("input_file", help="प्रक्रिया गर्ने फाइलको पथ")
args = parser.parse_args()

print(f"प्रक्रिया गर्ने फाइल: {args.input_file}")
यो कोडमा, प्रयोगकर्ताले कमाण्ड‑लाइनबाट निर्दिष्ट गरेको फाइल पथलाई input_file को रूपमा प्राप्त गरी, देखाउँछ। add_argument द्वारा आर्गुमेन्ट परिभाषित गरिन्छ, र parse_args() द्वारा विश्लेषण गर्ने सरल प्रक्रिया हो।

2. argparse प्रयोग गर्ने कारण: CLI उपकरणको लागि उत्तम विकल्प

CLI उपकरण भनेको के हो?

CLI उपकरण भनेको कमाण्ड लाइनबाट सिधै सञ्चालन हुने कार्यक्रम हो, विशेष गरी प्रणाली व्यवस्थापन, डेटा प्रशोधन, र स्वचालनमा उपयोगी हुन्छ। Python मा CLI उपकरण बनाउँदा, argparse धेरै उपयोगी हुन्छ। कारण भनेको, तर्क (आर्ग्युमेन्ट) को प्राप्ति र विश्लेषण स्वचालित हुन्छ, र त्रुटि ह्यान्डलिङ तथा सहयोग सन्देशको स्वचालित निर्माण पनि सम्भव हुन्छ।

argparse को फाइदाहरू

  • लचिलो तर्क सेटिङ: अनिवार्य तर्क र वैकल्पिक तर्कको परिभाषा सजिलो छ, र प्रयोगकर्ताले प्रयोग गर्न सहज कार्यक्रम डिजाइन गर्न सकिन्छ।
  • स्वचालित त्रुटि ह्यान्डलिङ: यदि तर्क कम छन् वा अवैध मान निर्दिष्ट गरिएको छ भने, argparse स्वचालित रूपमा त्रुटि सन्देश देखाउँछ।
  • सहायता सन्देश: argparse डिफल्ट रूपमा --help विकल्प प्रदान गर्दछ, जसले प्रयोगकर्तालाई प्रयोग विधि सजिलै जाँच्न मद्दत गर्छ।
नीचेको उदाहरण कमाण्ड लाइन उपकरणको प्रयोग विधि देखाउन --help प्रयोग गर्दछ।
$ python script.py --help
usage: script.py [-h] input_file

positional arguments:
  input_file  प्रक्रिया गर्ने फाइल

optional arguments:
  -h, --help  show this help message and exit
侍エンジニア塾

3. argparse को आधारभूत संरचना: चरण अनुसार व्याख्या

ArgumentParser को निर्माण

आर्ग्युमेन्टको विश्लेषण गर्नको लागि, पहिलो पटकArgumentParser वस्तु बनाउनु पर्छ। यो वस्तु कार्यक्रमको विवरण र प्रयोग विधिको परिभाषा गर्दछ。
parser = argparse.ArgumentParser(description="फाइल प्रक्रिया कार्यक्रम")

आर्ग्युमेन्टको थप

अर्को,add_argument() प्रयोग गरेर आर्ग्युमेन्ट थप्नुहोस्। यहाँ, आर्ग्युमेन्ट अनिवार्य हो या वैकल्पिक हो भनेर निर्दिष्ट गर्न सकिन्छ। साथै,help पैरामीटर प्रयोग गरेर व्याख्या पाठ थप्न पनि सम्भव छ।
parser.add_argument("input_file", type=str, help="इनपुट फाइल निर्दिष्ट गर्नुहोस्")
parser.add_argument("--verbose", action="store_true", help="विस्तृत आउटपुट सक्षम गर्नुहोस्")

आर्ग्युमेन्टको विश्लेषण

अन्तमा,parse_args() मेथ्य प्रयोग गरेर आर्ग्युमेन्ट विश्लेषण गर्नुहोस्। प्रयोगकर्ताले कमाण्ड लाइनबाट निर्दिष्ट गरेको आर्ग्युमेन्टargs वस्तुमा सुरक्षित हुन्छ।
args = parser.parse_args()

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

मूलभूत उदाहरण

तलको कोड argparse प्रयोग गरेर बनाइएको सरल उदाहरण हो, जसले फाइलनाम र विस्तृत आउटपुट विकल्प लिने CLI उपकरण बनाउँछ।
import argparse

parser = argparse.ArgumentParser(description="फाइल प्रक्रिया गर्ने कार्यक्रम")
parser.add_argument("file", help="कृपया फाइलको पथ निर्दिष्ट गर्नुहोस्")
parser.add_argument("--verbose", action="store_true", help="विस्तृत आउटपुट सक्षम गर्नुहोस्")

args = parser.parse_args()

if args.verbose:
    print(f"फाइल '{args.file}' लाई विस्तृत मोडमा प्रक्रिया गर्दैछ")
else:
    print(f"फाइल '{args.file}' लाई प्रक्रिया गर्दैछ")
यो कार्यक्रममा, --verbose विकल्प प्रयोग गरेर विस्तृत मोडमा वा सामान्य मोडमा आउटपुट गर्ने बीच स्विच गरिन्छ।
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

5. argparse को थाहा हुनुपर्ने सुविधाहरू

परस्पर बहिष्कृत तर्कहरू(Mutually Exclusive Arguments)

परस्पर बहिष्कृत तर्कहरू भनेको, विशेष तर्कहरू एकै समयमा प्रयोग नहुनु सुनिश्चित गर्ने सुविधा हो। उदाहरणका लागि, --foo--bar एकै साथ निर्दिष्ट नहुनु सुनिश्चित गर्न प्रतिबन्ध थप्ने अवस्थामा यो उपयोगी हुन्छ।
parser = argparse.ArgumentParser(description="परस्पर बहिष्कृत तर्कहरूको उदाहरण")
group = parser.add_mutually_exclusive_group()
group.add_argument("--foo", action="store_true", help="foo लाई सक्रिय गर्नुहोस्")
group.add_argument("--bar", action="store_true", help="bar लाई सक्रिय गर्नुहोस्")

args = parser.parse_args()

सब कमाण्ड

सब कमाण्ड प्रयोग गरेर, कार्यक्रमको कार्यलाई विभिन्न सुविधाहरूमा विभाजन गरी व्यवस्थित गर्न सकिन्छ। उदाहरणका लागि, install वा uninstall जस्ता विभिन्न कार्यहरूलाई एउटै कार्यक्रममा चलाउन सकिन्छ।
parser = argparse.ArgumentParser(description="सब कमाण्डको उदाहरण")
subparsers = parser.add_subparsers(dest="command")

install_parser = subparsers.add_parser('install')
install_parser.add_argument('package', help="स्थापना गर्नुपर्ने प्याकेजको नाम")

uninstall_parser = subparsers.add_parser('uninstall')
uninstall_parser.add_argument('package', help="अनइन्स्टल गर्नुपर्ने प्याकेजको नाम")

args = parser.parse_args()

if args.command == "install":
    print(f"प्याकेज {args.package} स्थापित गरिँदैछ")
elif args.command == "uninstall":
    print(f"प्याकेज {args.package} अनइन्स्टल गरिँदैछ")

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="अनुकूलित त्रुटि सन्देशको उदाहरण")
parser.add_argument("--input", required=True, help="कृपया इनपुट फाइल निर्दिष्ट गर्नुहोस्")

try:
    args = parser.parse_args()
except argparse.ArgumentError as err:
    print(f"त्रुटि: {err}")

7. argparse को वास्तविक संसारमा प्रयोगका उदाहरणहरू

स्वचालन उपकरणहरूमा प्रयोग

argparse फाइल प्रोसेसिङ र डेटा विश्लेषण जस्ता स्वचालन उपकरणहरूका लागि उपयुक्त छ। प्रयोगकर्ताहरूले कमाण्ड लाइनमा फाइल पथ र प्रोसेस मोड निर्दिष्ट गर्न सक्ने कारणले, लचिलो उपकरण निर्माण गर्न सकिन्छ।
$ python data_processor.py --input data.csv --output results.json --verbose

ठूलो-स्तरका परियोजनाहरूमा प्रयोग

ठूलो-स्तरका परियोजनाहरूमा, सबकमाण्डहरू र परस्पर बहिष्कृत तर्कहरूलाई संयोजन गर्दा सम्पूर्ण प्रणालीको प्रयोगयोग्यता सुधार हुन्छ। उदाहरणका लागि, प्याकेज व्यवस्थापन प्रणाली जस्तै, installremove जस्ता विभिन्न कार्यहरूलाई एउटै उपकरणमा समेट्न सकिन्छ।
$ python package_manager.py install package_name
argparse प्रयोग गर्दा, प्रयोगकर्ताहरूले सजिलै प्रणाली सञ्चालन गर्न सक्ने मात्र होइन, कोडको पुन: प्रयोगयोग्यता र मर्मत सम्भार क्षमताहरू पनि बढ्छन्।

8. सारांश

argparse प्रयोग गरेर, Python प्रोग्राममा लचिलो र शक्तिशाली कमाण्ड‑लाइन इन्टरफेस (CLI) कार्यान्वयन गर्न सकिन्छ। अनिवार्य आर्गुमेन्ट, वैकल्पिक आर्गुमेन्ट, सब‑कमाण्ड, एक्सक्लुसिभ आर्गुमेन्ट जस्ता सुविधाहरूको उपयोग गरेर, प्रयोगकर्ताहरूका लागि प्रयोग गर्न सजिलो र व्यवस्थापन गर्न सहज प्रोग्राम बनाउन सकिन्छ। विशेष गरी, ठूला परियोजनाहरू वा डेटा प्रोसेसिङको स्वचालन जस्ता विभिन्न परिदृश्यहरूमा यसको उपयोगी हुने अपेक्षा गरिन्छ। व्यावसायिक प्रयोगका उदाहरणहरू र प्रदर्शनलाई ध्यानमा राखेर कार्यान्वयन विधिहरू थाहा पाउँदा, प्रोग्रामको अनुकूलन सम्भव हुन्छ। साथै, त्रुटि ह्यान्डलिङ र सर्वोत्तम अभ्यासहरू लागू गरेर, प्रयोगकर्ताहरूले सजिलै त्रुटि पहिचान गर्न सक्ने उपकरणहरू पनि निर्माण गर्न सकिन्छ। यदि थप प्रश्नहरू छन् भने, कृपया निःशंक रूपमा जानकारी दिनुहोस्।
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール