2010-09-16 13 views
45

में आदेशों को निष्पादित करता है मैंने इसे थोड़ी देर पहले पढ़ा लेकिन ऐसा लगता है कि ऐसा नहीं लगता है। मैं एक कमांड खोजने की कोशिश कर रहा हूं जो टर्मिनल में कमांड निष्पादित करेगा और फिर परिणाम आउटपुट करेगा।पाइथन स्क्रिप्ट निष्पादन टर्मिनल

उदाहरण के लिए: स्क्रिप्ट हो जाएगा:

command 'ls -l' 

ऐसा नहीं है कि टर्मिनल

उत्तर

89

ऐसा करने के कई तरीके हैं:

एक आसान तरीका ओएस मॉड्यूल उपयोग कर रहा है: के लिए :

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] 
+16

मैं आपको डाउनवोट नहीं करना चाहता हूं लेकिन। आपको सब कुछ के लिए उपप्रोसेसर का उपयोग करना चाहिए। यह रास्ता सुरक्षित है। सरल कॉल फॉर्म को प्रतिस्थापित करने के लिए subprocess.call() आपको एक अच्छा इंटरफ़ेस प्राप्त करेगा। –

+0

उस उत्तर साथी के लिए धन्यवाद। उबंटू डेस्कटॉप पर अपने पहले आवेदन के लिए पाइथन का उपयोग करेंगे, यह वास्तव में मेरी मदद करेगा। – LinuxBill

+0

मैं आदेश की पूरी प्रतिक्रिया कैसे प्राप्त कर सकता हूं, 'ओएससिस्टम ("nslookup gmail.com")' केवल अंतिम पंक्ति '0' देता है, लेकिन मैं पूर्ण प्रतिक्रिया प्राप्त करना चाहता हूं। –

1

आपको चाहिए दूसरा पूरे आउटपुट के रूप में टर्मिनल में दिखाया जाएगा है -

यह लंबाई 2 के एक टपल देता है .. पहले भी commands.getstatusoutput पर गौर वापसी पूर्णांक (जब आदेशों सफल हुआ 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'] 
1

लिए os.popen() सुंदर बस का उपयोग करना है, लेकिन यह अजगर 2.6 के बाद से मान्य नहीं है। आपको इसके बजाय सबप्रोसेस मॉड्यूल का उपयोग करना चाहिए।

यहां पढ़ें: reading a os.popen(command) into a string

-5

डेस्कटॉप जीयूआई में, आप एक डेस्कटॉप शॉर्टकट leafpad कर सकते हैं (आप में से कुछ इसे प्रयोग नहीं किया जा सकता है) और यह उस में एक आदेश deignated फ़ाइल खोलने के लिए है। यदि आप इसे अपने पायथन दुभाषिया में कॉपी और पेस्ट करते हैं, तो इसे काम करना चाहिए। (मैं निश्चित रूप से यह सुनिश्चित नहीं करता कि यह काम करेगा, लेकिन इसे क्यों न दें!) सभी वर्तनी त्रुटियों के लिए खेद है ... केवल Im 11. यह जानकारी नहीं बनाई गई है! एक नाम बनाते समय मैं आलसी हूं! याद रखें, केवल 11 हूँ!

+0

lol whattttttttt – mikebertiean

+0

lmfao यह क्या है – Gianlucca

8

मैं उपप्रक्रिया मॉड्यूल के उपयोग पसंद करते हैं:

from subprocess import call 
call(["ls", "-l"]) 

कारण है कि यह बहुत ही आसान तरीका उदाहरण के लिए कोड

abc = a.c 
call(["vim", abc]) 
के निम्न भाग लेने देता है यदि आप स्क्रिप्ट में कुछ चर पास करना चाहते है
0
import os 
os.system("echo 'hello world'") 

यह काम करना चाहिए। मुझे नहीं पता कि पाइथन शेल में आउटपुट कैसे मुद्रित करें।

संबंधित मुद्दे