Python कमाण्ड‑लाइन आर्ग्युमेन्ट गाइड | sys.argv र argparse

目次

1. Python मा कमाण्ड लाइन आर्ग्युमेन्टको आधारभूत प्रयोग

कमाण्ड लाइन आर्ग्युमेन्ट के हो?

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

sys.argv प्रयोग गरेर कमाण्ड लाइन आर्ग्युमेन्ट प्राप्ति

Python मा, मानक लाइब्रेरी sys मोड्युल प्रयोग गरेर कमाण्ड लाइन आर्ग्युमेन्ट प्राप्त गर्न सकिन्छ। sys.argv भनेको कमाण्ड लाइन आर्ग्युमेन्टलाई सूची स्वरूपमा राख्ने भेरिएबल हो। सूचीको पहिलो तत्व (sys.argv[0]) चलाइने स्क्रिप्टको नाम हो, र दोस्रो र त्यसपछिका तत्वहरू आर्ग्युमेन्टको रूपमा पठाइएका मानहरू हुन्छन्।

नमूना कोड: सरल गणना प्रोग्राम

import sys

def main():
    if len(sys.argv) < 3:
        print("त्रुटि: 2 वटा आर्ग्युमेन्ट आवश्यक छन्")
        return

    num1 = float(sys.argv[1])
    num2 = float(sys.argv[2])
    print(f"जम्मा: {num1 + num2}")

if __name__ == "__main__":
    main()
उपरोक्त प्रोग्रामले कमाण्ड लाइनबाट पठाइएका 2 वटा संख्याहरूलाई जम्मा गरेर देखाउँछ। चलाउने उदाहरण तलको रूपमा छ।
$ python script.py 3 5
जम्मा: 8.0

2. argparse मोड्युलमा उन्नत तर्क प्रक्रिया

argparse को आधारभूत

sys.argv मा आधारभूत तर्क प्राप्त गर्न सम्भव छ, तर तर्कको संख्या धेरै भएमा, वा वैकल्पिक तर्क तथा फ्ल्यागहरू (जस्तै --verbose) प्रयोग गर्दा, मानक पुस्तकालयको argparse मोड्युल उपयोगी हुन्छ। यो मोड्युल प्रयोग गर्दा, तर्कको विश्लेषण र त्रुटि सन्देशको स्वचालित निर्माण सजिलै गर्न सकिन्छ।

तर्कको विश्लेषण र पार्सर निर्माण

argparse प्रयोग गर्न, पहिले तर्कलाई विश्लेषण गर्नको लागि पार्सर बनाउनु पर्छ। त्यसपछि, पार्सरमा तर्कको सेटिङ्ग गरी, वास्तविक कमाण्ड‑लाइन तर्कलाई विश्लेषण गर्नुहोस्।

नमूना कोड: मूलभूत argparse को प्रयोग

import argparse

def main():
    parser = argparse.ArgumentParser(description='उदाहरण कार्यक्रम हो')
    parser.add_argument('arg1', help='पहिलो तर्क')
    parser.add_argument('arg2', type=float, help='दोस्रो संख्यात्मक तर्क')
    args = parser.parse_args()

    print(f"arg1 = {args.arg1}")
    print(f"arg2 = {args.arg2}")

if __name__ == "__main__":
    main()
यो कार्यक्रमले दुई तर्कहरू लिन्छ। arg1 स्ट्रिङको रूपमा, arg2 संख्याको रूपमा व्यवहार गरिन्छ, र विश्लेषण पछि आउटपुट गरिन्छ।
$ python script.py test 5.5
arg1 = test
arg2 = 5.5

वैकल्पिक तर्क र फ्ल्यागको प्रक्रिया

argparse को शक्तिशाली सुविधाहरूमा वैकल्पिक तर्क र फ्ल्यागहरू समावेश छन्। यसले तर्क निर्दिष्ट गरिएको अवस्थामा मात्र चल्ने कोड लेख्न, तथा विस्तृत आउटपुट (जस्तै --verbose फ्ल्याग) प्रदान गर्न सम्भव बनाउँछ।

नमूना कोड: वैकल्पिक तर्क र फ्ल्यागको प्रयोग

import

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--verbose', action='store_true', help='विस्तृत आउटपुट देखाउनुहोस्')
    parser.add_argument('numbers', nargs='+', type=float, help='संख्यात्मक सूची')
    args = parser.parse_args()

    total = sum(args.numbers)
    if args.verbose:
        print(f"गणना विवरण: {args.numbers} को योग {total} हो")
    else:
        print(f"योग: {total}")

if __name__ == "__main__":
    main()
यो कार्यक्रममा, --verbose फ्ल्याग निर्दिष्ट गरिएमा विस्तृत आउटपुट देखाइन्छ, नत्र साधारण नतिजा देखाइन्छ।
$ python script.py 1 2 3 --verbose
गणना विवरण: [1.0, 2.0, 3.0] को योग 6.0 हो

3. त्रुटि ह्यान्डलिंग र आर्गुमेन्टको प्रमाणीकरण

आर्गुमेन्टको संख्या र प्रकारको प्रमाणीकरण

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

नमूना कोड: आर्गुमेन्टको संख्या र प्रकारको प्रमाणीकरण

import sys

def main():
    if len(sys.argv) != 3:
        print("त्रुटि: २ वटा आर्गुमेन्ट आवश्यक छन्")
        return

    try:
        num1 = float(sys.argv[1])
        num2 = float(sys.argv[2])
    except ValueError:
        print("त्रुटि: आर्गुमेन्ट संख्यात्मक हुनुपर्छ")
        return

    print(f"जम्मा: {num1 + num2}")

if __name__ == "__main__":
    main()
यस कार्यक्रममा, आर्गुमेन्टको संख्या ३ (स्क्रिप्ट नाम + २ संख्यात्मक मान) नभएमा त्रुटि सन्देश देखाइन्छ, र संख्यात्मक नभएको आर्गुमेन्ट पास गरिएमा पनि त्रुटि सन्देश देखाइन्छ।

4. वास्तविक प्रयोग केसहरू र अनुप्रयोगहरू

कमाण्ड‑लाइन उपकरण निर्माणको उदाहरण

कमाण्ड‑लाइन आर्ग्युमेन्टहरू प्रयोग गर्ने व्यावहारिक उदाहरणको रूपमा, फाइल अपरेसन र डेटा प्रोसेसिङ गर्ने कमाण्ड‑लाइन उपकरण बनाउने विचार गर्न सकिन्छ।

नमूना कोड: फाइलको सामग्री गन्ती गर्ने उपकरण

import argparse

def main():
    parser = argparse.ArgumentParser(description='फाइलको पङ्क्ति संख्या गन्ती गर्ने उपकरण')
    parser.add_argument('filename', help='गन्ती गर्ने फाइलको नाम')
    args = parser.parse_args()

    try:
        with open(args.filename, 'r') as file:
            lines = file.readlines()
            print(f"फाइल {args.filename} को पङ्क्ति संख्या: {len(lines)}")
    except FileNotFoundError:
        print(f"त्रुटि: फाइल {args.filename} फेला परेन")

if __name__ == "__main__":
    main()
यो उपकरणले निर्दिष्ट फाइलको पङ्क्ति संख्या गन्ती गरी आउटपुट गर्दछ।
$ python count_lines.py example.txt
फाइल example.txt को पङ्क्ति संख्या: 100
年収訴求

5. सारांश

Python मा कमाण्ड‑लाइन आर्ग्युमेन्टहरू कसरी ह्यान्डल गर्ने सिकेर, तपाईंले प्रोग्रामलाई लचिलो बनाउन सक्नुहुन्छ।sys.argv प्रयोग गरेर सरल तरिकाबाट, argparse द्वारा जटिल आर्ग्युमेन्ट प्रोसेसिङसम्म, वास्तविक आवश्यकताहरू अनुसार उपयुक्त विधि चयन गर्नु महत्त्वपूर्ण छ। साथै, त्रुटि ह्यान्डलिङ र आर्ग्युमेन्टको प्रमाणीकरण समावेश गरेर, अझ बलियो प्रोग्राम बनाउनु सम्भव हुन्छ।
年収訴求