我是新的 python(2.7 版)程序员,我有一个问题如何打开 2 个终端并输出 不同的信息。
该程序的主要任务是打开 2 个终端并输出不同的消息。 现在,我有 3 个以下文件
- test.py -- 它是假设打开 2 个终端并调用不同的 python 2 文件的主要文件
- print1.py -- 这是简单的 1 行代码,打印“这是第一个终端”这一行
- print2.py -- 与 print1.py 相同。它输出“这是第二个终端”
目前我的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
更改为 Popen
。 call
等待程序终止;在第一个程序终止之前,第二个终端不会被执行。
更新
顺便说一句,除非脚本在打印后没有暂停,否则 gnome-terminal
将在 python 程序终止后立即关闭。
如果您希望在程序终止后出现 shell 提示符,请在每个文件的末尾放置以下行(print1.py
、print2.py
):
import os
os.execv('/bin/sh', ['sh'])
关于python - 打开 2 个终端并在 Python 中打印 2 条不同的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25825515/