我正在运行一个程序,该程序根据用户在我的Raspberry Pi上收到的输入运行终端代码。我希望进程在我的python代码打开的另一个终端上运行。 为此我在我的Ubuntu机器上做了
os.system("gnome-terminal -x google-chrome") #if i wanted to open chrome
但这不是raspbian拉伸的选择。我想知道如何在我的覆盆子pi上执行类似的功能
我曾问过类似的问题here。请参考它以更好地理解我的要求
我在运行Raspbian Stretch的Raspberry Pi模型2 B上有Python 3.5.3
答案 0 :(得分:1)
听起来你不一定要生成一个新的终端模拟器来运行进程,但只是想让进程与你的Python代码并行运行。您可以使用subprocess
模块以比os.system
更灵活的方式生成新流程。
import subprocess
subprocess.Popen("google-chrome", stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
# Python code continues executing as soon as the process is spawned
print("Hello, World!")
stdout
和stderr
参数声明应丢弃输出(即重定向到/dev/null
)。
请注意,默认情况下Popen
不会使用shell来运行命令。如果您想更密切地模仿os.system
的行为,请使用shell=True
作为Popen
的参数。与os.system
一样,这会产生安全隐患!