我正在尝试编写一个脚本来打开一个新终端,然后从该终端运行一个单独的 python 脚本。
我试过了:
os.system("gnome-terminal 'python f.py'")
和
p = Popen("/usr/bin/gnome-terminal", stdin=PIPE)
p.communicate("python f.py")
但是这两种方法都只打开一个新终端并且不运行 f.py
。我将如何打开终端并运行一个单独的脚本?
编辑:我想打开一个新的终端窗口,因为 f.py
是一个正在运行的简单服务器 serve_forever()
。我希望原始终端窗口保持“自由”状态以运行其他命令。
原文由 Joe 发布,翻译遵循 CC BY-SA 4.0 许可协议
与大多数终端一样,gnome 终端需要 选项 来执行命令:
您可能需要添加
-x
选项:所以:
除非您将
&
添加到命令行 BTW,否则不会在后台运行您的进程。communicate
尝试需要一个换行符作为您的输入,但也应该有效,但终端等复杂进程不“喜欢”被重定向。这似乎是在向后使用交互式工具。再一次,这将阻塞直到终止。可行 的 方法是使用p.stdin.write("python f.py\n")
来控制 python 脚本。但在那种情况下,它不太可能起作用。所以看起来你甚至不需要 python 做你想做的事。你只需要跑
在外壳中。