子进程模块,可以从 Python 程序开始新应用。
启动 Python 进程:
在 Python 中可以使用 Popen 函数调用启动一个进程。下面的程序将启动 UNIX 程序命令 “cat”,第二个是一个参数。这等同于 “cat test.py'。可以使用任何参数的启动任何程序。#!/usr/bin/env python from subprocess import Popen, PIPE process = Popen(['cat', 'test.py'], stdout=PIPE, stderr=PIPE) stdout, stderr = process.communicate() print stdout
process.communicate()调用从进程中读取输入和输出。 stdout是进程输出。如果发生错误,标准错误将只写入。如果想等待程序完成,可以调用Popen.wait()。
另一种方法来启动 Python 进程:
子进程有一个方法:call(),它可以用来启动一个程序。该参数是一个列表,它的第一个参数必须是该程序的名称。完整的定义如下:subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False) # Run the command described by args. # Wait for command to complete, then return the returncode attribute.
下面的完整的命令的例子: “ls -l”
#!/usr/bin/env python import subprocess subprocess.call(["ls", "-l"])
运行一个进程,并保存到一个字符串
我们可以得到一个程序的输出,并直接使用check_output储存到一个字符串。该方法被定义为:
subprocess.check_output(args, *, stdin=None, stderr=None, shell=False, universal_newlines=False) # Run command with arguments and return its output as a byte string.
例子使用:
#!/usr/bin/env python import subprocess s = subprocess.check_output(["echo", "Hello World!"]) print("s = " + s)