Python:如何执行外部程序

时间:2010-12-10 20:08:38

标签: python subprocess

在执行的程序完成之前,如何在程序中执行程序而不会阻塞?

我试过了:

os.system()

但它会停止我的程序,直到执行的程序停止/关闭。有没有办法让我的程序在执行外部程序后继续运行?

4 个答案:

答案 0 :(得分:11)

考虑使用子流程模块。

subprocess 会生成一个运行外部应用程序的新进程。您的应用程序在另一个应用程序运行时继续执行。

答案 1 :(得分:4)

你想要subprocess

答案 2 :(得分:2)

您可以使用子进程模块,但os.system也可以使用。它通过一个shell工作,所以你只需要放一个'&'在你的字符串的末尾。就像在交互式shell中一样,它将在后台运行。

但是,如果需要从中获取某种输出,则很可能需要使用子进程模块。

答案 3 :(得分: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
                          )