Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中打开运行相同程序的终端_Python_Linux_Bash - Fatal编程技术网

在Python中打开运行相同程序的终端

在Python中打开运行相同程序的终端,python,linux,bash,Python,Linux,Bash,我熟悉如何从Python(os.system(“gnome terminal-e'bash-c\'exec bash\”))打开终端,但是有没有办法打开另一个终端,运行与打开新终端相同的程序 例如,如果我正在运行一个名为foo.py的程序,它打开了另一个终端,那么新的终端也将运行foo.py请看,它非常接近。您希望将sys.argv添加为参数,但: import sys import subprocess cmd = 'xterm -hold -e ./{0}'.format(' '.join(

我熟悉如何从Python(
os.system(“gnome terminal-e'bash-c\'exec bash\”)
)打开终端,但是有没有办法打开另一个终端,运行与打开新终端相同的程序

例如,如果我正在运行一个名为
foo.py
的程序,它打开了另一个终端,那么新的终端也将运行
foo.py

请看,它非常接近。您希望将sys.argv添加为参数,但:

import sys
import subprocess
cmd = 'xterm -hold -e ./{0}'.format(' '.join(sys.argv))
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

一定要检查您已经运行了多少进程/终端,否则它会在几秒钟内挂起您的机器。

使用线程,或者查看是否运行第一个字符串,并在前面加上“nohup”。打开终端,运行此程序。那个程序打开了另一个终端,它自动运行同一个程序,一次又一次,对吗?@Evert你能给我举个例子吗?对不起,看起来我误解了你的问题:我把它理解为同一个程序依次打开多个终端。你需要
os.system吗(“gnome terminal-e'bash-c'exec python/path/to/foo.py'”
?我尝试过,但是xterm终端输出“bash:foo.py:command not found.”另外,我正在尝试使用gnome terminal进行此操作。很抱歉造成混淆。我编辑了答案,可能应该是“/foo.py”,而不是“foo.py”“。我不太了解gnome终端参数,抱歉。