Python subprocess模組的學習

2021-10-06 03:32:53 字數 1553 閱讀 4837

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...