導讀
Python內置調用外部命令:
- os.system
- os.popen
- os.popen2
- os.popen3
- os.popen4
- commands模塊
- subprocess模塊
在Python3中,將os.popen2、os.popen3、os.popen4、commands等模塊方法移除
所以不用花精力瞭解,可以繞過了
os.system方法
os.system("cmd") 調用外部命令,使用非常簡單
程序只能返回命令運行返回碼:0正常,1異常;但無法捕獲cmd進程執行結果
優點:使用簡單,可以執行一句話cmd行
缺點:無法獲取cmd執行結果,不能進行交互式調用,以及複雜調用操作
os.popen、os.popen2、os.popen3、os.popen4方法
該popen函數族,通過管道與調用外部命令交互通訊
popen函數族調用方與被調用外部cmd進程之間建立一個通訊管道,通過管道實現與外部cmd進程交互通訊
- os.popen: 只捕獲標準輸出,捕獲不到標準錯誤
- os.popen2:返回2個對象,一個是標準輸入,一個是標準輸出
- os.popen3:返回3個對象,標準輸入,標準輸出,標準錯誤輸出
- os.popen4:返回2個對象,pip_in和pip_out_err,pip_in是標準輸入,而標準輸出和標準錯誤都在一個管道pip_out_err
os.popen示例一:
os.popen示例二:
os.popen2返回2個對象,一個是標準輸入,一個是標準輸出,示例:
os.popen3返回3個對象,標準輸入,標準輸出,標準錯誤輸出
commands模塊
commands是Python的內置模塊,可以調用Linux shell命令
該模塊主要提供三個函數:
- commands.getoutput('cmd') 執行cmd命令,並返回執行結果
- commands.getstatus('file') 輸入文件路徑,返回ls -ld file執行結果
- commands.getstatusoutput('cmd') 執行cmd命令,返回一個結果元組(status, result),result包含標準輸出和標準錯誤
commands模塊使用示例:
最後
如果內容有誤,歡迎評論區指正!
喜歡我的朋友們,麻煩點一波關注,謝謝!