0
我有一個問題,我需要編寫一個python腳本,它基本上打開一個終端窗口並啓動一個節點js服務器,然後打開另一個終端窗口並啓動一個java程序中。從python腳本的多個終端窗口運行多個命令
如果我運行兩個subprocess.call()函數,它們在相同的終端窗口中運行。
有沒有一種方法可以做到這一點?
謝謝:)
我有一個問題,我需要編寫一個python腳本,它基本上打開一個終端窗口並啓動一個節點js服務器,然後打開另一個終端窗口並啓動一個java程序中。從python腳本的多個終端窗口運行多個命令
如果我運行兩個subprocess.call()函數,它們在相同的終端窗口中運行。
有沒有一種方法可以做到這一點?
謝謝:)
使用subprocess.Popen:
這將爲它的每個殭屍和運行程序新窗口。 python3的-i選項是在TestBot3.py腳本完成後使窗口交互。
from subprocess import Popen, PIPE
bot1 = Popen(["lxterminal", "-e", "python3", "-i", "TestBot1.py"], stdout=PIPE, stderr=PIPE, stdin=PIPE)
bot2 = Popen(["lxterminal", "-e", "python3", "-i", "TestBot2.py"], stdout=PIPE, stderr=PIPE, stdin=PIPE)
bot3 = Popen(["lxterminal", "-e", "python3", "-i", "TestBot3.py"], stdout=PIPE, stderr=PIPE, stdin=PIPE)
或者你可以使用from subprocess import call
call(["python3", "TestBot1.py"])
call(["python3", "TestBot2.py"])
call(["python3", "TestBot3.py"])
要打開一個終端爲每個你可以使用GNOME終端與-e執行參數傳遞給終端內部此選項:
call(['gnome-terminal', '-e', "python3 TestBot1.py"])
call(['gnome-terminal', '-e', "python3 TestBot2.py"])
call(['gnome-terminal', '-e', "python3 TestBot3.py"])
因此,如果我想使用Popen選項,並且我想要執行的這兩個命令是例如「cd Desktop && npm start」和「cd Desktop/folder && mvn exec:exec」,我該如何實現?我對這種方式並不是非常有經驗,所以我不清楚:)謝謝 – lauderdice
您可以指定程序文件的路徑,例如「TestBot1.py」與您的目錄「Desktop/test/TestBot1.py」。 –