2013-09-29 101 views
0

我有一個簡單的程序,其中一部分是打開其他程序,例如Web瀏覽器。如何在Python中打開程序時停止線程凍結

它的確如此,os.system(sudo "program"),但一旦程序打開,我不能對原始python程序做任何事情,直到新程序關閉。有什麼辦法可以阻止這種情況發生?

回答

1

子過程。子進程模塊將控制權返回給python並通過管道獲取結果。

import subprocess as sp 
proc = sp.Popen(["program", "arg1", "arg2"], shell=False, stdout=sp.PIPE, stderr=sp.PIPE) 
ret, err = proc.communicate() 

「計劃」開始在proc等於....但結果(mesages,錯誤)進入管道,當你調用proc.communicate();如果不是這種情況,可以跳過stderr = sp.PIPE。