(5)subprocess模組(執行系統命令)

2022-08-14 00:54:12 字數 1033 閱讀 4589

這個模組的主要用途就是執行系統命令

什麼是程序

乙個程式執行起來了就是乙個程序

但是程式本身不是程序,程式是一對**而已

所以程序就是乙個抽象的概念,就是程式執行起來的乙個過程

程序和程序之間是相互獨立的,互不影響

如何理解子程序和父程序

抽象的說乙個qq程式是乙個父程序,word就是乙個子程序,兩個互不干預,當然這只是乙個比喻

subprocess模組的用途

讓父程序從管道內獲取子程序執行的結果

呼叫格式(這個模組的呼叫時乙個固定的格式)

import subprocess

obj=subprocess.popen(

'tasklasdfist', #第乙個引數是乙個字串形式的命令

shell=true, #第二個引數是呼叫命令直譯器(如呼叫cmd)

stdout=subprocess.pipe, #第三個引數stdout是指標準輸出,輸出的物件就是subrocess.pipe(管道)

stderr=subprocess.pipe   #第四個引數stderr是指錯誤輸出,輸出的物件就是subrocess.pipe(管道)

res=obj.stdout.read()  #從正確管道內讀取結果 (obj是乙個特殊的物件,這個特殊的物件下面可以呼叫乙個srdout(對應的就是正確的管道)下呼叫乙個read

print(res.decode('gbk'))  #根據系統的編碼進行解碼讀取

res=obj.stderr.read() #這是從錯誤管道內獲取結果

print(res.decode('gbk'))

ps:管道的概念,什麼是管道,可以想象成生活中的管道,作用就是因為程序和程序之間是相互隔離的,無法傳播資料,所以用管道可以把子程序和父程序關聯起來

ps:管道內讀取的結果是以系統的編碼格式返回的二進位制字元,所以在列印時候需要根據系統的編碼進行解碼

subprocess模組來執行shell

subprocess 官網 subprocess 使用方式 run 方法來實現子程序呼叫優先選用 popen 雖然強大但是存在阻塞問題 run import subprocess import shlex 需要執行的命令 command line ls al usr 命令格式化 args shlex...

struct 模組 subprocess 模組

struct 模組 就這麼用 import struct 首先匯入此模組 res ncjewgfjsdbvdhj 隨意的值 print len res 15 只是為了展示原res的長度res1 struct.pack i len res 打包,固定i模式,len res print len res1...

subprocess模組 re模組

import subprocess 匯入subprocess模組,該模組的作用為可以通過python 向終端 cmd 傳送命令 while true 進行迴圈,可以讓使用者重複的進行輸入 cmd str input 請輸入終端命令 strip 定義變數cmd str obj subprocess.p...