在python程式中呼叫shell命令,是件很酷且常用的事情……
1. os.system(command)
此函式會啟動子程序,在子程序中執行command,並返回command命令執行完畢後的退出狀態,如果command有執行內容,會在標準輸出顯示。這實際上是使用c標準庫函式system()實現的。
缺點:這個函式在執行command命令時需要重新開啟乙個終端,並且無法儲存command命令的執行結果。
例項:os.system('ls -l *')
2. os.popen(command,mode)
開啟乙個與command程序之間的管道。這個函式的返回值是乙個檔案物件,可以讀或者寫(由mode決定,mode預設是』r')。如果mode為』r',可以使用此函式的返回值呼叫read()來獲取command命令的執行結果。
os.system(cmd)或os.popen(cmd),前者返回值是指令碼的退出狀態碼,後者的返回值是指令碼執行過程中的輸出內容。實際使用時視需求情況而選擇。
例項:tmp = os.popen('ls -l *').readlines()
3. commands.getstatusoutput(command)
使用os.popen()函式執行command命令並返回乙個元組(status,output),分別表示command命令執行的返回狀態和執行結果。對command的執行實際上是按照 2>&1的方式,所以output中包含控制台輸出資訊或者錯誤資訊。output中不包含尾部的換行符。
4. subprocess模組
此模組在python2.4中初次亮相,其中集中了關於程序的諸多操作,其中的call()完全替代了system(),而popen()被更為豐富的popen類替代;
總結:python提供了十分完善的呼叫shell命令的功能,在實戰中,我碰到的問題,有system和popen基本可全部搞定;
from:
python呼叫shell命令
在python程式中呼叫shell命令 此函式會啟動子程序,在子程序中執行command,並返回command命令執行完畢後的退出狀態,如果command有執行內容,會在標準輸出顯示。這實際上是使用c標準庫函式system 實現的。缺點 這個函式在執行command命令時需要重新開啟乙個終端,並且無...
python 呼叫shell命令
python中的commands模組用於呼叫shell命令,有3中方法 commands.getstatus 返回執行狀態 commands.getoutput 返回執行結果 commands.getstatusoutput 返回乙個元組,執行狀態和執行結果 其他執行shell命令的方法還有 1.o...
python 呼叫 shell 命令方法
python呼叫shell命令方法 缺點 不能獲取返回值 要得到命令的輸出內容,只需再呼叫下read 或readlines 等 例 a os.popen cmd read 此模組主要有如下方法 commands.getstatusoutput cmd 返回 status,output command...