से बैश के साथ बातचीत करना मैं पाइथन के subprocess
मॉड्यूल के साथ खेल रहा हूं और मैं अजगर से बैश के साथ "इंटरैक्टिव सत्र" करना चाहता था। मैं पाइथन से बैश आउटपुट/लिखने के आदेशों को पढ़ने में सक्षम होना चाहता हूं जैसे कि मैं टर्मिनल एमुलेटर पर करता हूं। मुझे लगता है कि एक कोड उदाहरण बेहतर बताते हैं:पायथन
>>> proc = subprocess.Popen(['/bin/bash'])
>>> proc.communicate()
('[email protected]:~/','')
>>> proc.communicate('ls\n')
('file1 file2 file3','')
(। जाहिर है, इसे उस तरह से काम नहीं करता है) यह संभव तरह कुछ, और कैसे है?
धन्यवाद एक बहुत
पहला .communicate() कॉल अच्छी तरह से काम करता है, लेकिन अगर मैं फिर से संवाद करने की कोशिश करता हूं, तो ऐसा होता है: 'ValueError: I/O ऑपरेशन बंद फ़ाइल पर। क्या इसे चलाने के लिए कोई रास्ता है? – justinas
दूसरा उदाहरण देखें। – Adam
1- पहला कोड उदाहरण 'stdout = subprocess.check_output ([' ls ',' -lash '] के रूप में लिखा जा सकता है) '। 'Bash' कमांड चलाने के लिए, आप 'check_output (" कुछ && कमांड $ (
jfs