我正在研究一個小腳本。該腳本應該打開3個終端並獨立與終端交互。如何在Python中與終端進行交互
我很明白,子過程是最好的方式來做到這一點。我到目前爲止所做的:
# /usr/bin/env python
import subprocess
term1 = subprocess.Popen(["open", "-a", "Terminal"], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
term1.communicate(input="pwd")
我的問題是我無法與新終端進行交互。這部分term1.communicate(input="pwd")
不起作用。我無法將命令發送到新的終端。我也試過term1.communicate(input="pwd\n")
但沒有任何反應
你有什麼想法我該怎麼做?
P.S.我正在使用Mac OS。
你真的需要爲你打開所要完成什麼新的終端,或者你只需要運行'pwd'並捕獲輸出? – user2085282 2014-09-12 19:15:08
此外,'溝通'等待進程完成,終端通常不會退出,直到關閉,所以它沒有任何意義。 – user2085282 2014-09-12 19:23:27
@ user2085282在我的情況我必須運行2命令:「sudo tcprelay telnet」和「tcprelay --portoffset [arg1] [arg2]」,但問題是如果我運行其中一個命令而無需打開新的終端,我將不會能夠運行第二個,直到第一個完成/終止。這就是爲什麼我使用這個解決方案 – 2014-09-12 20:38:47