1、用來生成子程序,並可以通過管道連線他們的輸入/輸出/錯誤,以及獲得他們的返回值。
2、subprocess用來替換多個舊模組和函式
os.system 結果輸出到螢幕
os.spawn*
os.popen* 結果儲存在記憶體中,用read()方法可讀取
popen2.*
commands.*
備註:執行python的時候,我們都是在建立並執行乙個程序,linux中乙個程序可以fork乙個子程序,並讓這個子程序exec另外乙個程式。在python中,我們通過標準庫中的subprocess包來fork乙個子程序,並且執行乙個外部的程式。subprocess包中定義有數個建立子程序的函式,這些函式分別以不同的方式建立子程序,所欲我們可以根據需要來從中選取乙個使用。另外subprocess還提供了一些管理標準流(standard stream)和管道(pipe)的工具,從而在程序間使用文字通訊。
*備註:函式引數簡介
(1)args:啟動程序的引數,預設為字串序列(列表或元組),也可為字串(設為字串時一般需將shell引數賦值為true);
(2) shell:shell為true,表示args命令通過shell執行,則可訪問shell的特性;
(3) check:check為true時,表示執行命令的程序以非0狀態碼退出時會丟擲;subprocess.calledprocesserror異常;check為false時,狀態碼為非0退出時不會丟擲異常;
(4) stdout、stdin、stderr:分別表示程式標準標輸出、輸入、錯誤資訊;
1、subprocess.run(args, stdout, stderr, shell …):
作用:執行args命令,返回值為completedproces類
2、subprocess.call(args[, stdout, …]):
作用:執行args命令,返回值為命令執行狀態碼;
3、subprocess.check_call(args[, stdout, …]):
作用:執行args命令,返回值為命令執行狀態碼;
4、subprocess.check_output(args[, stderr, …]):
作用:執行args命令,返回值為命令執行的輸出結果;
1、subprocess.getoutput(cmd):
2、subprocess.getstatusoutput(cmd):
作用:subprocess.popen類用於在乙個新程序中執行乙個子程式,上述subprocess函式均是基於subprocess.popen類;
1、subprocess.popen(args[, bufsize, stdin, stdout, stderr, …]):popen類的建構函式,返回結果為subprocess.popen物件;
2、subprocess.popen物件常用方法(如popenobject為subprocess.popen物件)
3、subprocess.popen物件的文字或位元組流控制
Python subprocess模組學習總結
從python 2.4開始,python引入subprocess模組來管理子程序,以取代一些舊模組的方法 如 os.system os.spawn os.popen popen2.commands.不但可以呼叫外部的命令作為子程序,而且可以連線到子程序的input output error管道,獲取...
Python subprocess模組解析
在學習這個模組前,我們先用python的help 函式檢視一下subprocess模組是幹嘛的 description this module allows you to spawn processes,connect to their input output error pipes,and ob...
python subprocess模組 學習筆記
subprocess允許你啟動乙個新的程序並與其通訊。subprocess模組中只定義了乙個類,popen。subprocess.popen args,bufsize 0,executable none,stdin none,stdout none,stderr none,preexec fn no...