一、os.system()
只返回對應狀態碼,且狀態碼只會有0(成功)、1、2。
此會將結果之間輸出,所有在對返回值沒有分析時可用
os.system(cmd)
二、os.popen()
返回腳本命令輸出的內容
os.popen()可以實現一個“管道”,從這個命令獲取的值可以繼續被調用。而os.system不同,它只是調用,調用完后自身退出,執行成功直接返回個0
os.popen(cmd).read()
三、subprocess.Popen()
Popen類的構造函數,返回結果為subprocess.Popen對象,腳本命令的執行結果可以通過stdout.read()獲取。
res = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) result = res.stdout.read() res.wait() res.stdout.close()
四、subprocess.getstatusoutput()
result = subprocess.getstatusoutput(cmd)
返回是一個元組,如果成功,返回(0, 'xxx');如果失敗,返回(1, 'xxx')