2013-10-08 9 views
23

के रूप में सिस्टम कमांड का आउटपुट प्राप्त करें पायथन में मैं os या subprocess का उपयोग करके कुछ सिस्टम कमांड चला सकता हूं। समस्या यह है कि मैं एक स्ट्रिंग के रूप में आउटपुट नहीं प्राप्त कर सकता। उदाहरण के लिए:पायथन में, स्ट्रिंग

>>> tmp = os.system("ls") 
file1 file2 
>>> tmp 
0 

मुझे लगता है कि समारोह check_out नहीं है उपप्रक्रिया के एक पुराने संस्करण है, और के बाद से मेरी कोड एक सर्वर मैं पर चलेगा मैं एक समाधान है कि कि मॉड्यूल को अद्यतन करने की आवश्यकता नहीं है पसंद करेंगे पूर्ण व्यवस्थापक अधिकार नहीं है।

यह समस्या तुच्छ लगता है, फिर भी मैं एक छोटी सी समस्या का समाधान नहीं मिल सकता है

+0

आपको 'पॉपन' पीआईपीई की आवश्यकता है, सिस्टम शायद प्रक्रिया समाप्ति स्थिति –

+0

@GrijeshChauhan मैंने इसे भी आजमाया लेकिन इसे काम नहीं कर सका। क्या आप एक उदाहरण दिखा सकते हैं? – S4M

+0

क्या पायथन संस्करण? – codeape

उत्तर

62

उपयोग os.popen(): subprocess उपयोग करने के लिए

tmp = os.popen("ls").read() 

नए रास्ते (> अजगर 2.6) यह करने के लिए है:

proc = subprocess.Popen('ls', stdout=subprocess.PIPE) 
tmp = proc.stdout.read() 
+0

उपप्रोसेस का उपयोग करने वाला एक उदाहरण सहायक होगा :) –

+0

सबप्रोसेस –

+0

tmp = os.popen ("ls")। पढ़ें() ठीक है। मेरे पास पाइथन 2.6 है। – S4M

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