我想在遠程計算機上執行ssh到該計算機,然後在其終端上運行命令後運行多個命令。如何發送多個輸入到遠程shell使用子進程.Popen
我想爲這項工作使用子過程。所以我寫了下面的命令: -
import subprocess
process = subprocess.Popen(['ssh', '[email protected]'], shell=False, stdin=subprocess.PIPE)
現在,我得到遠程計算機的終端和我通過它獲取該計算機上執行以下命令: -
print process.communicate('python test.py /home/rahul/vPath-dissector')
但是,當我再打電話給最後叫命令,它給出了一個錯誤: -
print process.communicate('python temp.py /home/rahul/vPath-dissector')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/subprocess.py", line 690, in communicate
self.stdin.write(input)
ValueError: I/O operation on closed file
所以我可以用什麼命令發送多個命令而不關閉文件???
你試過'process.stdin.write('python temp.py/home/rahul/vPath-dissector')'而不是使用'communic'嗎? – agf
嗨,那麼我將如何獲得上述命令的輸出?我無法得到它的輸出.... – Rahul
'process.stdout.readlines()'? – agf