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.
$ gnome-terminal --help-all
...
-e, --command Execute the argument to this option inside the terminal
...
Run Code Online (Sandbox Code Playgroud)
如果您希望窗口保持打开状态,那么您需要运行一个shell或命令,以使其保持打开状态.
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)