溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中subprocess模塊的使用方法

發(fā)布時間:2020-11-02 12:47:11 來源:億速云 閱讀:201 作者:小新 欄目:編程語言

Python中subprocess模塊的使用方法?這個問題可能是我們?nèi)粘W習或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

subprocess模塊打算來替代幾個過時的模塊和函數(shù),如: os.system, os.spawn*, os.popen*, popen2.*命令。

讓我們來看一下subprocess 有哪些不同的函數(shù):

  • 執(zhí)行由參數(shù)提供的命令.

  • 我們可以用數(shù)組作為參數(shù)運行命令,也可以用字符串作為參數(shù)運行命令(通過設(shè)置參數(shù)shell=True)

  • 注意,參數(shù)shell默認為False

我們用subprocess.call()來做一個統(tǒng)計磁盤的例子:

 subprocess.call(['df', '-h'])

下面的例子把shell設(shè)置為True:

 subprocess.call('du -hs $HOME', shell=True)

注意,python官方文檔里對參數(shù)shell=True陳述了一個警告:

Python中subprocess模塊的使用方法

現(xiàn)在,我們來看看輸入與輸出

subprocess.Popen()
subprocess 模塊中基本的進程創(chuàng)建和管理由Popen 類來處理.
subprocess.popen是用來替代os.popen的.

我們來做一些真實的例子,subprocess.Popen需要一個數(shù)組作為參數(shù):

Python中subprocess模塊的使用方法

注意,雖然你可以使用 "shell=True",但并不推薦這樣的方式.

如果你知道你只用幾個有限的函數(shù),比如Popen和PIPE,你可以單單指定這幾個函數(shù):

Python中subprocess模塊的使用方法

Popen.communicate()
communicate()函數(shù)返回一個tuple(標準輸出和錯誤).
Popen.communicate() 和進程溝通:發(fā)送數(shù)據(jù)到標準輸入.從標準輸出和錯誤讀取數(shù)據(jù)直到遇到結(jié)束符.等待進程結(jié)束.
輸入?yún)?shù)應(yīng)該是一個字符串,以傳遞給子進程,如果沒有數(shù)據(jù)的話應(yīng)該是None.

基本上,當你用 communicate()函數(shù)的時候意味著你要執(zhí)行命令了。

Python中subprocess模塊的使用方法

感謝各位的閱讀!看完上述內(nèi)容,你們對Python中subprocess模塊的使用方法大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI