子進程模塊,可以從 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)