python執行shell命令的方法

2021-09-13 17:09:14 字數 1369 閱讀 3163

import os

os.system('top')

os.system('cat /proc/cpuinfo')

說明

這個呼叫相當直接,且是同步進行的,程式需要阻塞並等待返回。

返回值是依賴於系統的,直接返回系統的呼叫返回值,所以windows和linux是不一樣的。

強調的一點是,不支援引數,不支援管道

import os

output = os.popen('df')

print output.read() #如果命令自身無報錯,則返回正確的值

說明

popen方法通過p.read()獲取終端輸出,而且popen需要關閉close().

當執行成功時,close()不返回任何值,失敗時,close()返回系統返回值..

可見它獲取返回值的方式和os.system不同

強調的一點是,不支援引數,不支援管道

使用commands模組的getoutput方法,這種方法同popend的區別在於popen返回的是乙個檔案控制代碼,而本方法將外部程式的輸出結果當作字串返回,很多情況下用起來要更方便些。

主要方法:

a = commands.getoutput('ps -ef ')

b = commands.getstatusoutput('vmstat')

說明

使用subprocess模組能夠建立新的程序。

能夠與新建程序的輸入/輸出/錯誤管道連通。

並能夠獲得新建程序執行的返回狀態。

使用subprocess模組的目的是替代os.system()、os.popen

()、commands.等舊的函式或模組。

from subprocess import call

call(['ls','-l','/boot','/sys']) #

call('ls -a /',shell=true)

subprocess.popen(args, bufsize=0, executable=none, stdin=none, stdout=none, stderr=none, preexec_fn=none, close_fds=false, shell=false, cwd=none, env=none, universal_newlines=false, startupinfo=none, creationflags=0)

python執行shell命令

在此比較一下兩種方法執行系統命令的方法,以方便於日後運用 1.os.system system command exit status execute the command a string in a subshell.僅僅在乙個子終端執行系統命令,而不能獲取命令執行後的返回資訊.os.syste...

python的執行shell命令

os.system cat proc cpuinfo 返回的是執行的結果,1或者是其他 output os.popen cat proc cpuinfo print output.read 通過 os.popen 返回的是 file read 的物件,對其進行讀取 read 的操作可以看到執行的輸出...

Python指令碼中執行shell命令

system 其中最後乙個0是這個命令的返回值,為0表示命令執行成功。使用system無法將執行的結果儲存起來。這裡寫描述popen 獲取命令執行的結果,但是沒有命令的執行狀態,這樣可以將獲取的結果儲存起來放到list中。commands 可以很方便的取得命令的輸出 包括標準和錯誤輸出 和執行狀態位...