我是新的python(ver 2.7)程序员,我有一个问题如何打开2个终端和输出 不同的信息。
该程序的主要任务是打开2个终端并输出不同的消息。 现在,我有3个以下文件
目前,我的test.py有以下代码:
import subprocess
subprocess.call(['gnome-terminal','-x','python print1.py'])
subprocess.call(['gnome-terminal','-x','python print2.py'])
当我执行程序时,它打开两个终端,它们都告诉"为这个终端创建子进程时出错。无法执行子项" 。 然后,我试图写print1 / print2.py的完整路径,但它仍然给出相同的错误,我陷入了困境。 请一些人给我一些建议来解决这个错误。
答案 0 :(得分:1)
您需要将python
和文件路径指定为分隔项。否则,python print1.py
将被解释为程序名称,而不是python
。
import subprocess
proc1 = subprocess.Popen(['gnome-terminal', '-x', 'python', 'print1.py'])
proc2 = subprocess.Popen(['gnome-terminal', '-x', 'python', 'print2.py'])
proc1.wait()
proc2.wait()
注意:我使用call
更改了Popen
。 call
等待程序终止;在第一个程序终止之前,第二个终端不会被执行。
<强>更新强>
BTW,除非脚本在打印后没有暂停,否则gnome-terminal
将在python程序终止后立即关闭。
如果在程序终止后需要shell提示符,请在每个文件的末尾添加以下行(print1.py
,print2.py
):
import os
os.execv('/bin/sh', ['sh'])