Python कमाण्ड चलाउने पूर्ण गाइड | आधारभूतदेखि उन्नत तक

1. Python मा कमाण्ड चलाउने के हो?

Python विभिन्न कार्यहरूलाई स्वचालित गर्न प्रयोग हुने प्रोग्रामिङ भाषा हो, तर विशेष गरी कमाण्ड लाइनमा कार्यहरूलाई प्रोग्रामबाट चलाउन सक्ने क्षमता यसको मुख्य आकर्षण हो। Python मा, OS को कार्यहरूलाई कल गरेर फाइल अपरेसन र प्रणाली व्यवस्थापनलाई स्वचालित गर्न सकिन्छ। यस लेखमा, Python प्रयोग गरेर कमाण्ड चलाउने आधारभूत तरिकाबाट उन्नत प्रयोगसम्मको विधिहरू गरिनेछ।

2. Python मा कमाण्ड चलाउने आधारभूत तरिका

Python मा कमाण्ड चलाउने सबैभन्दा आधारभूत तरिका भनेको os.system() वा subprocess मोड्युल प्रयोग गर्नु हो। प्रत्येक विधिमा फाइदा र बेफाइदा छन्, त्यसैले परिस्थितिको आधारमा प्रयोग फरक पार्नु महत्त्वपूर्ण छ।

2.1 os.system()मा कमाण्ड चलाउने

os.system() भनेको Python प्रोग्रामबाट सिस्टम कमाण्ड चलाउनको लागि सरल तरिका हो। तलको जस्तै प्रयोग गरिन्छ।
import os
os.system('ls')
यो मेथड सजिलै प्रयोग गर्न सकिन्छ, तर कमाण्डको नतिजा प्राप्त गर्न सकिँदैन, र सुरक्षा सम्बन्धी चिन्ता पनि हुने कारणले सामान्यतया धेरै सिफारिस गरिंदैन। आधुनिक समयमा, अधिक नियन्त्रणयोग्य subprocess मोड्युल प्रयोग हुने प्रवृत्ति बढेको छ।

2.2 subprocess.run() द्वारा आधारभूत कमाण्ड चलाउने

subprocess.run() भनेको Python मा कमाण्ड चलाउँदा सिफारिस गरिने विधि हो। नतिजा प्राप्ति र त्रुटि ह्यान्डलिङ सम्भव छ, जसले कमाण्डलाई अधिक सुरक्षित र लचिलो रूपमा चलाउन सकिन्छ।
import subprocess
subprocess.run(['ls', '-l'])
यो कोडले ls -l कमाण्ड चलाउँछ, र नतिजा मानक आउटपुटमा देखाउँछ। subprocess.run() समकालिक रूपमा काम गर्छ, कमाण्ड समाप्त नहुँदा अर्को प्रक्रिया नजारी रहने विशेषता छ। विशेष गरी फाइल अपरेसन र सिस्टम व्यवस्थापनमा उपयोगी हुन्छ।

3. उन्नत कमाण्ड कार्यान्वयन:असिंक्रोनस प्रक्रिया र पाइप प्रक्रिया

यदि अझ उन्नत कमाण्ड कार्यान्वयन आवश्यक छ भने, subprocess मोड्युल प्रयोग गरेर असिंक्रोनस कार्यान्वयन र पाइप प्रक्रिया सम्भव हुन्छ। यसले अधिक जटिल प्रक्रियाहरूलाई प्रभावकारी रूपमा स्वचालित गर्न मद्दत गर्दछ।

3.1 subprocess.Popen() मा असिंक्रोनस कमाण्ड कार्यान्वयन

असिंक्रोनस प्रक्रिया कमाण्डको समाप्तिको प्रतीक्षा नगरी अर्को प्रक्रियामा जान सक्ने कारणले, धेरै कार्यहरूलाई एकै समयमा चलाउन चाहनुहुन्छ भने उपयोगी हुन्छ। उदाहरणका लागि, तलको कोड असिंक्रोनस रूपमा कमाण्ड चलाउँछ।
import subprocess
proc = subprocess.Popen(['sleep', '5'])
print("कमाण्ड चलिरहेको छ")
यो कोडले sleep 5 कमाण्डलाई असिंक्रोनस रूपमा चलाउँछ र “कमाण्ड चलिरहेको छ” देखाउँछ। असिंक्रोनस प्रक्रिया समय लाग्ने कमाण्डहरू वा समानान्तरमा गर्न चाहिने कार्यहरू भएको अवस्थामा प्रभावकारी हुन्छ।

3.2 पाइप प्रक्रियाद्वारा बहु कमाण्डको संयोजन

धेरै कमाण्डहरूलाई संयोजन गरेर चलाउन चाहनुहुन्छ भने, पाइप प्रक्रिया उपयोगी हुन्छ। उदाहरणका लागि, फाइलको सामग्री पढेर त्यसलाई अर्को फाइलमा लेख्न चाहनुहुन्छ भने, तलको जस्तै लेख्न सकिन्छ।
import subprocess
with open('input.txt') as input_file, open('output.txt', 'w') as output_file:
    subprocess.run(['cat'], stdin=input_file, stdout=output_file)
यो कोडले input.txt को सामग्रीलाई cat कमाण्डले पढ्छ र त्यसलाई output.txt मा लेख्छ। subprocess.run() को एक शक्तिशाली विशेषता भनेको मानक इनपुट र मानक आउटपुटलाई पाइप मार्फत जडान गर्न सक्नु हो।

4. त्रुटि ह्यान्डलिंग र आउटपुट प्राप्ति

कमाण्ड चलाउँदा महत्वपूर्ण तत्वहरू त्रुटि ह्यान्डलिंग र कमाण्डको नतिजा प्राप्त गर्नु हो।subprocess यी सबैलाई लचिलो रूपमा प्रक्रिया गर्न डिजाइन गरिएको छ।

4.1 मानक आउटपुट र त्रुटि आउटपुटको प्राप्ति

subprocess.run() मा, कमाण्डको मानक आउटपुट र त्रुटि आउटपुटलाई क्याप्चर गर्न सम्भव छ। तलको उदाहरणमा, कमाण्डको नतिजा भेरिएबलमा राखी, त्यसको सामग्री देखाइन्छ।
import subprocess
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
print(result.stdout)
यहाँ, capture_output=True निर्दिष्ट गरेर, कमाण्डको मानक आउटपुट प्राप्त हुन्छ। त्रुटि आउटपुट result.stderr द्वारा प्राप्त गर्न सकिन्छ।

4.2 अपवाद प्रक्रिया द्वारा त्रुटि ह्यान्डलिंग

कमाण्ड चलाउँदा त्रुटि उत्पन्न भएमा, Python अपवाद उत्पन्न गर्छ। यसलाई try-except ब्लकमा प्रक्रिया गरेर, त्रुटि उत्पन्न हुँदा उपयुक्त प्रतिक्रिया सम्भव हुन्छ।
import subprocess
try:
    subprocess.run(['invalid_command'], check=True)
except subprocess.CalledProcessError as e:
    print(f"त्रुटि भयो: {e}")
यस कोडमा, check=True निर्दिष्ट गरेर, कमाण्ड असफल भएमा अपवाद उत्पन्न गरिन्छ र त्रुटि सन्देशलाई क्याच गरिन्छ। यसले त्रुटि हुँदा लग रेकर्ड गर्न वा अन्य प्रक्रिया गर्न सम्भव बनाउँछ।
侍エンジニア塾

5. Windows, Mac, Linux को भिन्नता

Python मा कमाण्ड चलाउँदा, प्रयोग गरिने OS अनुसार व्यवहार फरक हुन सक्छ। विशेष गरी, Windows र Unix‑प्रकारको OS (Linux वा macOS) मााण्डको स्वरूप र कार्यमा भिन्नता हुने कारणले सावधानी आवश्यक।

5.1 Windows मा कमाण्ड चलाउने

Windows वातावरणमा, कमाण्ड प्रॉम्प्ट वा PowerShell प्रयोग गरेर कमाण्ड चलाइन्छ। उदाहरणका लागि, डाइरेक्टरीको सूची देखाउन तलको जस्तै लेखिन्छ।
import subprocess
subprocess.run(['dir'], shell=True)
Windows मा shell=True निर्दिष्ट गर्न आवश्यक हुन्छ, जसले शेलको आन्तरिक कमाण्ड चलाउन सकिन्छ।

5.2 Unix‑प्रकारको OS मा कमाण्ड चलाउने

Linux वा macOS मा, शेल कमाण्डलाई सिधै चलाउन सकिन्छ। उदाहरणका लागि, डाइरेक्टरीको सूची प्राप्त गर्न तलको जस्तै लेख।
import subprocess
subprocess.run(['ls', '-l'])
Unix‑प्रकारको OS मा, कमाण्डको स्वरूप Windows भन्दा फरक हुन्छ, र धेरैजसो सरल तरिकाले लेख्न सकिन्छ।

6. सारांश

Python प्रयोग गरेर कमाण्ड चलाएर, फाइल व्यवस्थापन र प्रणाली सञ्चालनलाई स्वचालित गर्न, दक्षता बढाउन सकिन्छ।subprocess मोड्युल प्रयोग गरेर, आधारभूत कमाण्ड कार्यान्वयनदेखि असिंक्रोनस प्रक्रिया र पाइप प्रक्रिया सम्म, विभिन्न परिदृश्यहरूलाई समर्थन गर्न सकिन्छ। साथै, त्रुटि ह्यान्डलिङ्ग र OS अनुसारको भिन्नतामा ध्यान राख्दै, Python प्रयोग गरेर लचिलो कमाण्ड कार्यान्वयनलाई हासिल गरौं। यसरी, Python मा कमाण्ड कार्यान्वयन विधि राम्रोसँग बुझेर, दैनिक कार्यलाई दक्ष बनाउँदा, प्रोग्रामिङ कौशललाई अझै उन्नत गर्न सकिन्छ। कृपया यसलाई व्यवहारमा लागू गर्नुहोस्।
年収訴求