如何在Python中打开一个应用程序,然后让其余的脚本运行?

时间:2013-04-13 23:58:14

标签: python subprocess raspberry-pi

我一直在尝试创建一个脚本,如果互联网闪烁,它会重新加载名为Midori的网络浏览器。但是,如果我通过CLI打开Midori似乎只有工作 - 否则,程序在重新加载后崩溃。我已经决定最好的想法是让脚本通过subprocess模块打开Midori。所以,我把它作为我代码中的第一个参数之一:

import subprocess as sub
sub.call(["midori"])

浏览器打开,但程序的其余部分冻结,直到我退出Midori。我曾尝试使用线程,但它似乎不起作用。

有没有办法通过Python打开一个应用程序,然后在打开所述应用程序之后让其余的脚本继续运行?

1 个答案:

答案 0 :(得分:2)

来自the docs

  

运行args描述的命令。 等待命令完成,然后返回returncode属性。

(强调补充)

您可以看到这是我们应该期待的行为。要解决此问题,请改用subprocess.Popen。这不会以同样的方式阻止:

from subprocess import Popen
midori_process = Popen(["midori"])