पायथन से सिस्टम कमांड चलाना
पायथन आपकी स्क्रिप्ट से सीधे बाहरी प्रोग्राम और सिस्टम कमांड निष्पादित करने के लिए शक्तिशाली क्षमताएं प्रदान करता है। यह सुविधा आपको अपने ऑपरेटिंग सिस्टम में उपलब्ध टूल की विशाल श्रृंखला का लाभ उठाते हुए पायथन की सरलता का लाभ उठाने की अनुमति देती है।
चाहे आप दोहराए जाने वाले कार्यों को स्वचालित कर रहे हों या जटिल वर्कफ़्लो को एकीकृत कर रहे हों, पायथन में सिस्टम कमांड को कॉल करने का तरीका समझने से आपकी उत्पादकता में उल्लेखनीय वृद्धि हो सकती है। इस गाइड में, हम इसे प्रभावी ढंग से प्राप्त करने के लिए विभिन्न तरीकों का पता लगाएंगे।
| आज्ञा | विवरण |
|---|---|
| subprocess.run | एक सबशेल में एक कमांड निष्पादित करता है। आउटपुट और त्रुटियों को कैप्चर कर सकता है। |
| subprocess.run([...], capture_output=True) | निष्पादित कमांड के मानक आउटपुट और मानक त्रुटि को कैप्चर करता है। |
| subprocess.run([...], shell=True) | शेल के माध्यम से कमांड चलाता है, जिससे शेल में वाइल्डकार्ड जैसी सुविधाएं मिलती हैं। |
| subprocess.Popen | एक नई प्रक्रिया में एक कमांड निष्पादित करता है, जिससे इसके निष्पादन पर अधिक नियंत्रण मिलता है। |
| process.stdout.readline() | प्रक्रिया के मानक आउटपुट से आउटपुट की एक पंक्ति पढ़ता है। |
| os.system | एक सबशेल में एक कमांड निष्पादित करता है, आमतौर पर सरल कमांड निष्पादन के लिए उपयोग किया जाता है। |
| subprocess.check_output | एक कमांड चलाता है और उसका आउटपुट लौटाता है। यदि आदेश विफल हो जाता है तो एक अपवाद उठाता है। |
| os.environ.copy() | संशोधनों की अनुमति देते हुए, वर्तमान परिवेश चर की एक प्रति बनाता है। |
| env parameter in subprocess.run | नई प्रक्रिया के लिए पर्यावरण चर निर्दिष्ट करता है। |
पायथन में स्क्रिप्ट निष्पादन को समझना
प्रदान की गई स्क्रिप्ट पायथन का उपयोग करके बाहरी कमांड निष्पादित करने के विभिन्न तरीकों को प्रदर्शित करती है। कमांड बहुमुखी है, जिससे आप सीधे अपनी पायथन स्क्रिप्ट से शेल कमांड चला सकते हैं। उदाहरण के लिए, कंसोल पर एक संदेश प्रिंट करता है, जबकि का आउटपुट कैप्चर करता है ls -l कमांड, एक विस्तृत निर्देशिका सूची प्रदर्शित करता है। का उपयोग करते हुए साथ वाइल्डकार्ड विस्तार जैसी शेल सुविधाओं के उपयोग की अनुमति देता है, जिससे यह अधिक जटिल कमांड के लिए आसान हो जाता है।
कमांड एसिंक्रोनस कमांड चलाने और प्रक्रिया के इनपुट और आउटपुट स्ट्रीम के साथ इंटरेक्शन की अनुमति देकर कमांड निष्पादन पर अधिक नियंत्रण प्रदान करता है। उदाहरण के लिए, स्क्रिप्ट उदाहरण के साथ स्थानीय मशीन को लगातार पिंग करता है और आउटपुट की प्रत्येक पंक्ति को पढ़ता है। इसके अतिरिक्त, सरल कमांड निष्पादन के लिए उपयोग किया जाता है लेकिन इसमें लचीलेपन का अभाव है subprocess. पर्यावरण चर को संशोधित किया जा सकता है और इसका उपयोग करके उपप्रक्रिया में पारित किया जा सकता है और यह में पैरामीटर , पर्यावरण के आधार पर गतिशील कमांड निष्पादन की अनुमति देता है।
पायथन में बाहरी कमांड निष्पादित करना
पायथन के सबप्रोसेस मॉड्यूल का उपयोग करना
import subprocess# Example 1: Running a simple shell commandsubprocess.run(['echo', 'Hello, World!'])# Example 2: Capturing the output of a commandresult = subprocess.run(['ls', '-l'], capture_output=True, text=True)print(result.stdout)# Example 3: Running a command with shell=Truesubprocess.run('echo Hello from the shell', shell=True)# Example 4: Checking the return coderesult = subprocess.run(['ls', 'nonexistentfile'], capture_output=True)if result.returncode != 0:print('Command failed')# Example 5: Using subprocess.Popen for more controlprocess = subprocess.Popen(['ping', 'localhost'], stdout=subprocess.PIPE)while True:output = process.stdout.readline()if output == b'' and process.poll() is not None:breakif output:print(output.strip().decode())
पायथन के साथ सिस्टम कार्यों को स्वचालित करना
ओएस.सिस्टम और सबप्रोसेस मॉड्यूल का उपयोग करना
import osimport subprocess# Example 1: Using os.system to run a commandos.system('echo This is a test')# Example 2: Running a command and capturing output with subprocessresult = subprocess.run(['date'], capture_output=True, text=True)print('Current date and time:', result.stdout)# Example 3: Executing multiple commandscommands = ['echo First command', 'echo Second command']for cmd in commands:os.system(cmd)# Example 4: Running a command with environment variablesenv = os.environ.copy()env['MY_VAR'] = 'Hello'subprocess.run('echo $MY_VAR', shell=True, env=env)# Example 5: Handling command errorstry:subprocess.check_output(['false_command'], stderr=subprocess.STDOUT)except subprocess.CalledProcessError as e:print('An error occurred:', e.output.decode())
सिस्टम कमांड निष्पादन के लिए उन्नत तकनीकें
पायथन में सिस्टम कमांड निष्पादित करने के एक अन्य पहलू में इसका उपयोग करना शामिल है शेल कमांड पार्सिंग को संभालने के लिए मॉड्यूल। यह मॉड्यूल शेल कमांड को एक सूची प्रारूप में विभाजित करने का एक तरीका प्रदान करता है, जिसे बाद में पास किया जा सकता है कार्य. यह सुनिश्चित करता है कि रिक्त स्थान के साथ तर्कों को सही ढंग से नियंत्रित किया जाता है। इसके अतिरिक्त, आप इसका उपयोग कर सकते हैं मानक इनपुट, आउटपुट और त्रुटि स्ट्रीम को मूल प्रक्रिया में निर्देशित करने के लिए, अधिक जटिल अंतर-प्रक्रिया संचार की अनुमति देना।
उदाहरण के लिए, कमांड को चेन करना और उनके आउटपुट को क्रमिक रूप से प्रोसेस करना एक कमांड के आउटपुट को दूसरे में पाइप करके प्राप्त किया जा सकता है . यह आपको शेल स्क्रिप्ट के समान शक्तिशाली कमांड अनुक्रम बनाने की अनुमति देता है। आप भी उपयोग कर सकते हैं एकाधिक उपप्रक्रिया कमांड को एक साथ चलाने के लिए, आपकी स्क्रिप्ट की दक्षता को बढ़ाने के लिए, विशेष रूप से I/O-बाउंड कार्यों से निपटते समय।
- मैं शेल कमांड कैसे चला सकता हूं और पायथन में इसका आउटपुट कैसे प्राप्त कर सकता हूं?
- उपयोग साथ कमांड के आउटपुट को कैप्चर करने के लिए।
- के बीच क्या अंतर है और ?
- एक सरल इंटरफ़ेस है जो कमांड के पूरा होने की प्रतीक्षा करता है कमांड निष्पादन पर अधिक नियंत्रण देता है, अतुल्यकालिक संचालन की अनुमति देता है।
- सिस्टम कमांड चलाते समय मैं त्रुटियों से कैसे निपटूँ?
- उपयोग और के साथ ब्लॉक करता है त्रुटियों को पकड़ने और संभालने के लिए.
- क्या मैं पर्यावरण चर को एक कमांड में पास कर सकता हूँ?
- हाँ, उपयोग करें पैरामीटर में या पर्यावरण चर पारित करने के लिए।
- मैं क्रम में एकाधिक कमांड कैसे चला सकता हूँ?
- उपयोग या पाइप का उपयोग करके लूप या चेन कमांड में .
- मैं उस कमांड को कैसे निष्पादित कर सकता हूं जिसके लिए उपयोगकर्ता इनपुट की आवश्यकता है?
- उपयोग साथ और उपयोग करके प्रक्रिया के साथ संवाद करें .
- का क्या उपयोग है आदेश निष्पादन में?
- शेल कमांड को सही ढंग से पार्स करने में मदद करता है, यह सुनिश्चित करता है कि रिक्त स्थान के साथ तर्कों को ठीक से संभाला जाए।
- मैं पृष्ठभूमि में कमांड कैसे चलाऊं?
- उपयोग प्रक्रिया पूरी होने या उपयोग की प्रतीक्षा किए बिना पृष्ठभूमि निष्पादन को प्रबंधित करने के लिए।
सिस्टम कमांड निष्पादन के लिए उन्नत तकनीकें
पायथन में सिस्टम कमांड निष्पादित करने के एक अन्य पहलू में इसका उपयोग करना शामिल है शेल कमांड पार्सिंग को संभालने के लिए मॉड्यूल। यह मॉड्यूल शेल कमांड को एक सूची प्रारूप में विभाजित करने का एक तरीका प्रदान करता है, जिसे बाद में पास किया जा सकता है कार्य. यह सुनिश्चित करता है कि रिक्त स्थान के साथ तर्कों को सही ढंग से नियंत्रित किया जाता है। इसके अतिरिक्त, आप इसका उपयोग कर सकते हैं मानक इनपुट, आउटपुट और त्रुटि स्ट्रीम को मूल प्रक्रिया में निर्देशित करने के लिए, अधिक जटिल अंतर-प्रक्रिया संचार की अनुमति देना।
उदाहरण के लिए, कमांड को चेन करना और उनके आउटपुट को क्रमिक रूप से प्रोसेस करना एक कमांड के आउटपुट को दूसरे में पाइप करके प्राप्त किया जा सकता है . यह आपको शेल स्क्रिप्ट के समान शक्तिशाली कमांड अनुक्रम बनाने की अनुमति देता है। आप भी उपयोग कर सकते हैं एकाधिक उपप्रक्रिया आदेशों को एक साथ चलाने के लिए, आपकी स्क्रिप्ट की दक्षता को बढ़ाने के लिए, विशेष रूप से I/O-बाउंड कार्यों से निपटते समय।
पायथन में बाहरी कमांड निष्पादित करना एक बहुमुखी और शक्तिशाली क्षमता है जो आपके स्क्रिप्टिंग और ऑटोमेशन कार्यों को महत्वपूर्ण रूप से बढ़ा सकती है। का उपयोग करके मॉड्यूल, आप शेल कमांड चला सकते हैं, उनके आउटपुट कैप्चर कर सकते हैं और त्रुटियों को प्रभावी ढंग से संभाल सकते हैं। फ़ंक्शन बुनियादी कमांड निष्पादन के लिए एक सरल विकल्प प्रदान करता है। इसके अतिरिक्त, को शामिल करते हुए मॉड्यूल जटिल शेल कमांड का उचित पार्सिंग सुनिश्चित करता है। इन तकनीकों को समझने से आप अपने ऑपरेटिंग सिस्टम के कमांड-लाइन टूल की पूरी क्षमता का उपयोग करते हुए पायथन की ताकत का लाभ उठा सकते हैं।