用参数启动gnome-terminal

use*_*312 3 python terminal subprocess

使用Python,我想在新的终端窗口中启动一个进程,因为这样可以向用户显示正在发生的事情,因为涉及多个进程.

我试过做:

>>> import subprocess
>>> subprocess.Popen(['gnome-terminal'])
<subprocess.Popen object at 0xb76a49ac>
Run Code Online (Sandbox Code Playgroud)

这按照我的意愿工作,打开一个新窗口.

但是如何将参数传递给它呢?就像,当终端启动时,我希望它说,运行ls.但是这个:

>>> subprocess.Popen(['gnome-terminal', 'ls'])
<subprocess.Popen object at 0xb76a706c>
Run Code Online (Sandbox Code Playgroud)

这再次有效,但ls命令不起作用:启动空白终端窗口.

所以我的问题是,如何使用指定的命令启动终端窗口,以便在窗口打开时运行该命令.

PS:我的目标只是 Linux.

Ign*_*ams 5

$ gnome-terminal --help-all

 ...

  -e, --command                   Execute the argument to this option inside the terminal

 ...
Run Code Online (Sandbox Code Playgroud)

如果您希望窗口保持打开状态,那么您需要运行一个shell或命令,以使其保持打开状态.


unu*_*tbu 5

In [5]: import subprocess

In [6]: import shlex

In [7]: subprocess.Popen(shlex.split('gnome-terminal -x bash -c "ls; read -n1"'))
Out[7]: <subprocess.Popen object at 0x9480a2c>
Run Code Online (Sandbox Code Playgroud)