Python中subprocess模塊的使用方法?這個(gè)問(wèn)題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見(jiàn)到的。希望通過(guò)這個(gè)問(wèn)題能讓你收獲頗深。下面是小編給大家?guī)?lái)的參考內(nèi)容,讓我們一起來(lái)看看吧!
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信平臺(tái)小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了安國(guó)免費(fèi)建站歡迎大家使用!
subprocess模塊打算來(lái)替代幾個(gè)過(guò)時(shí)的模塊和函數(shù),如: os.system, os.spawn*, os.popen*, popen2.*命令。
讓我們來(lái)看一下subprocess 有哪些不同的函數(shù):
執(zhí)行由參數(shù)提供的命令.
我們可以用數(shù)組作為參數(shù)運(yùn)行命令,也可以用字符串作為參數(shù)運(yùn)行命令(通過(guò)設(shè)置參數(shù)shell=True)
注意,參數(shù)shell默認(rèn)為False
我們用subprocess.call()來(lái)做一個(gè)統(tǒng)計(jì)磁盤(pán)的例子:
subprocess.call(['df', '-h'])
下面的例子把shell設(shè)置為T(mén)rue:
subprocess.call('du -hs $HOME', shell=True)
注意,python官方文檔里對(duì)參數(shù)shell=True陳述了一個(gè)警告:
現(xiàn)在,我們來(lái)看看輸入與輸出
subprocess.Popen() subprocess 模塊中基本的進(jìn)程創(chuàng)建和管理由Popen 類(lèi)來(lái)處理. subprocess.popen是用來(lái)替代os.popen的.
我們來(lái)做一些真實(shí)的例子,subprocess.Popen需要一個(gè)數(shù)組作為參數(shù):
注意,雖然你可以使用 "shell=True",但并不推薦這樣的方式.
如果你知道你只用幾個(gè)有限的函數(shù),比如Popen和PIPE,你可以單單指定這幾個(gè)函數(shù):
Popen.communicate() communicate()函數(shù)返回一個(gè)tuple(標(biāo)準(zhǔn)輸出和錯(cuò)誤). Popen.communicate() 和進(jìn)程溝通:發(fā)送數(shù)據(jù)到標(biāo)準(zhǔn)輸入.從標(biāo)準(zhǔn)輸出和錯(cuò)誤讀取數(shù)據(jù)直到遇到結(jié)束符.等待進(jìn)程結(jié)束. 輸入?yún)?shù)應(yīng)該是一個(gè)字符串,以傳遞給子進(jìn)程,如果沒(méi)有數(shù)據(jù)的話(huà)應(yīng)該是None.
基本上,當(dāng)你用 communicate()函數(shù)的時(shí)候意味著你要執(zhí)行命令了。
感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)Python中subprocess模塊的使用方法大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。