从python脚本从多个终端窗口运行多个命令

从python脚本从多个终端窗口运行多个命令,python,shell,unix,terminal,Python,Shell,Unix,Terminal,我有一个问题,我需要编写一个python脚本,它基本上打开一个终端窗口并在其中启动一个节点js服务器,然后打开另一个终端窗口并在其中启动一个java程序 如果我运行两个subprocess.call()函数,它们将在同一个终端窗口中运行 我有办法做到这一点吗 谢谢。)使用子流程。Popen: 这将为每个机器人创建新窗口并在其中运行程序。python3的-i选项是在TestBot3.py脚本完成后使窗口交互 from subprocess import Popen, PIPE bot1 = Po

我有一个问题,我需要编写一个python脚本,它基本上打开一个终端窗口并在其中启动一个节点js服务器,然后打开另一个终端窗口并在其中启动一个java程序

如果我运行两个subprocess.call()函数,它们将在同一个终端窗口中运行

我有办法做到这一点吗

谢谢。)

使用子流程。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)
或者您可以使用子流程导入调用中的

call(["python3", "TestBot1.py"])
call(["python3", "TestBot2.py"])
call(["python3", "TestBot3.py"])
要为每个打开一个终端,可以使用gnome terminal with-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”,我该如何实现这一点?我对这种方式不是很有经验,所以我不太清楚:)谢谢你可以用目录“Desktop/test/TestBot1.py”指定程序文件的路径,比如“TestBot1.py”。