在新终端中运行os.system命令 - Raspberry Pi上的Python 3

时间:2018-06-06 14:16:15

标签: python python-3.x raspberry-pi

我正在运行一个程序,该程序根据用户在我的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

1 个答案:

答案 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!")

stdoutstderr参数声明应丢弃输出(即重定向到/dev/null)。

请注意,默认情况下Popen不会使用shell来运行命令。如果您想更密切地模仿os.system的行为,请使用shell=True作为Popen的参数。与os.system一样,这会产生安全隐患!