从Python在新终端窗口中启动程序
我想从一个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
!