जवाबों:
इसे करने बहुत सारे तरीके हैं:
एक सरल तरीका ओएस मॉड्यूल का उपयोग कर रहा है:
import os
os.system("ls -l")
अधिक जटिल चीजें सबप्रोसेस मॉड्यूल के साथ प्राप्त की जा सकती हैं: उदाहरण के लिए:
import subprocess
test = subprocess.Popen(["ping","-W","2","-c", "1", "192.168.1.70"], stdout=subprocess.PIPE)
output = test.communicate()[0]
os.system("nslookup gmail.com")
केवल अंतिम पंक्ति लौटाता 0
हूं, लेकिन मैं पूरी प्रतिक्रिया प्राप्त करना चाहता हूं।
मैं सबप्रोसेस मॉड्यूल के उपयोग को प्राथमिकता देता हूं:
from subprocess import call
call(["ls", "-l"])
कारण यह है कि यदि आप स्क्रिप्ट में कुछ चर पास करना चाहते हैं, तो यह कोड के निम्नलिखित भाग को उदाहरण के लिए बहुत आसान तरीका देता है
abc = a.c
call(["vim", abc])
call(["eog", "1breeproposal.png", "-f"])
वास्तव में उपप्रकार पर कोई भी प्रश्न एक अच्छा पढ़ा जाएगा
आपको कमांड्स .getstatusoutput में भी देखना चाहिए
यह लंबाई 2 का एक टपल देता है। पहला रिटर्न पूर्णांक है (0 - जब कमांड सफल होता है) दूसरा संपूर्ण आउटपुट है जैसा कि टर्मिनल में दिखाया जाएगा।
Ls के लिए
import commands
s=commands.getstatusoutput('ls')
print s
>> (0, 'file_1\nfile_2\nfile_3')
s[1].split("\n")
>> ['file_1', 'file_2', 'file_3']
import os
os.system("echo 'hello world'")
यह काम करना चाहिए। मुझे नहीं पता कि आउटपुट को अजगर शेल में कैसे प्रिंट किया जाए।
Os.popen () सुंदर बस उपयोग करने के लिए है, लेकिन यह अजगर 2.6 के बाद से मान्य नहीं है। आपको इसके बजाय सबप्रोसेस मॉड्यूल का उपयोग करना चाहिए ।
यहाँ पढ़ें: एक स्ट्रिंग में एक os.popen (कमांड) पढ़ना
ज्यूपिटर नोटबुक में आप मैजिक फंक्शन का उपयोग कर सकते हैं !
!echo "execute a command"
files = !ls -a /data/dir/ #get the output into a variable
इसे एक .py
स्क्रिप्ट के रूप में निष्पादित करने के लिए आपको उपयोग करने की आवश्यकता होगीipython
files = get_ipython().getoutput('ls -a /data/dir/')
स्क्रिप्ट निष्पादित करें
$ ipython my_script.py
आप 'os' मॉड्यूल आयात कर सकते हैं और इसे इस तरह उपयोग कर सकते हैं:
import os
os.system('#DesiredAction')
python3 के लिए उपप्रकार का उपयोग करें
import subprocess
s = subprocess.getstatusoutput(f'ps -ef | grep python3')
print(s)