2010-12-10 59 views
3

如何在程序結束後執行程序而不會阻塞程序?Python:如何執行外部程序

我曾嘗試:

os.system() 

但直到執行程序停止/關閉停止我的程序。有沒有辦法讓我的程序在執行外部程序後繼續運行?

回答

2

您可以使用子進程模塊,但os.system也可以使用。它通過一個外殼工作,所以你只需要在你的字符串末尾加上'&'。就像在交互式shell中一樣,它會在後臺運行。

但是,如果您需要從中獲取某種輸出,您很可能需要使用子流程模塊。

1

您可以使用subprocess爲:

import subprocess 
import codecs 

# start 'yourexecutable' with some parameters 
# and throw the output away 
with codecs.open(os.devnull, 'wb', encoding='utf8') as devnull: 
    subprocess.check_call(["yourexecutable", 
          "-param", 
          "value"], 
          stdout=devnull, stderr=subprocess.STDOUT 
         )