python - 打开 2 个终端并在 Python 中打印 2 条不同的消息

标签 python linux python-2.7 terminal

我是新的 python(2.7 版)程序员,我有一个问题如何打开 2 个终端并输出 不同的信息。

该程序的主要任务是打开 2 个终端并输出不同的消息。 现在,我有 3 个以下文件

  1. test.py -- 它是假设打开 2 个终端并调用不同的 python 2 文件的主要文件
  2. print1.py -- 这是简单的 1 行代码,打印“这是第一个终端”这一行
  3. 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 更改为 Popencall 等待程序终止;在第一个程序终止之前,第二个终端不会被执行。

更新

顺便说一句,除非脚本在打印后没有暂停,否则 gnome-terminal 将在 python 程序终止后立即关闭。

如果您希望在程序终止后出现 shell 提示符,请在每个文件的末尾放置以下行(print1.pyprint2.py):

import os
os.execv('/bin/sh', ['sh'])

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

相关文章:

Python:根据索引集从列表中选择子集

python - 列表理解中的浅拷贝或深拷贝

python - 我可以在不关闭 python 的情况下保存文本文件吗?

python - Windows Python 与 Linux Python : "from module import *" is not importing on Windows

python - Flake8 属性错误 : 'module' object has no attribute 'normalize_paths'

python - 基于逻辑条件的 Pandas DataFrame 切片?

python - 如何在 numpy.linalg.solve 中使用稀疏矩阵

linux - Shell 脚本以及如何避免在 Linux 机器上同时运行相同的脚本

linux - 嵌入式linux驱动加载

c++ - 在 C++ 中使用共享内存的远程代理