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().使用commands模組的getoutput方法,這種方法同popend的區別在於popen返回的是乙個檔案控制代碼,而本方法將外部程式的輸出結果當作字串返回,很多情況下用起來要更方便些。當執行成功時,close()不返回任何值,失敗時,close()返回系統返回值..
可見它獲取返回值的方式和os.system不同
強調的一點是,不支援引數,不支援管道
主要方法:
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 可以很方便的取得命令的輸出 包括標準和錯誤輸出 和執行狀態位...