我是新的python(2.7版)程序员,我有一个问题,如何打开两个终端并输出
不同的信息。
该程序的主要任务是打开两个终端,输出不同的信息。
现在,我有3个文件
py——假设打开两个终端并调用不同的python 2文件的主文件
print1.py——这是一行简单的代码,用于打印“这是第一个终端”的行
print2.py—与print1.py相同。它输出“这是第二个终端”
目前,my test.py有以下代码:

import subprocess
subprocess.call(['gnome-terminal','-x','python print1.py'])
subprocess.call(['gnome-terminal','-x','python print2.py'])

当我执行程序时,它会打开两个终端,它们都会告诉我“为这个终端创建子进程时出错。未能执行子级”。
然后,我试图编写print1/print2.py的完整路径,但它仍然给出相同的错误,我陷入了困境。
请给我一些建议来解决这个错误。

最佳答案

您需要将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改变了Popencall等待程序终止;直到第一个程序终止,第二个终端才会执行。
更新
顺便说一下,除非脚本在打印后没有暂停,否则一旦python程序终止,gnome-terminal将立即关闭。
如果要在程序终止后显示shell提示符,请在每个文件的末尾(print1.pyprint2.py):
import os
os.execv('/bin/sh', ['sh'])

关于python - 打开2个终端并在Python中打印2条不同的消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25825515/

10-09 09:02