从Python在新终端窗口中启动程序

4 投票
2 回答
6054 浏览
提问于 2025-04-17 02:02

我想从一个Python脚本启动另一个Python脚本,并且希望它在一个新的命令行窗口中运行。到目前为止,我还没能做到。有没有人知道我该怎么做呢?

比如说

import subprocess
process = subprocess.Popen('test.py', shell=True, stdout=subprocess.PIPE)
process.wait()
print (process.returncode)

当我运行这个脚本时,它应该在一个新的命令行窗口中启动'test.py'。

我在使用Linux,不过如果你能提供Windows的解决方案,那就太好了。

2 个回答

1

与其打开一个命令行窗口,不如直接打开一个终端来运行你的脚本。在Linux系统上,你可以用 xterm -e test.py 来实现;在Windows上,类似的命令应该是 cmd.exe test.py(不过我可能记错了)。

3

在类似Debian的系统上,你可以这样做:

import subprocess
import shlex
process = subprocess.Popen(
    shlex.split("""x-terminal-emulator -e 'bash -c "test.py"'"""), stdout=subprocess.PIPE)
process.wait()
print (process.returncode)

类似的方法应该适用于任何*类Unix系统。

非常感谢 eudoxos 提醒我们使用 x-terminal-emulator

撰写回答