Python執行系統命令一般的用到了三種方法,
第一種是 os.system(), 這個方法比較常用, 使用也簡單, 會自動的生成一個進程,在進程完成后會自動退出, 需要注意的是
os.system() 只返回命令執行的狀態, 並不返回命令執行的結果,例如:
import os
t1 = os.system('df -h')
print 't1=', t1
他的輸出就是: t1=0
其次需要注意的是 os.system() 創建的是進程, 會等待命令執行完, 不適合需要常時間等待的命令執行
第二種是os.Popen(), 相對上一個命令, 他能得到命令執行的輸出, 但是他的問題也是明顯的,比如命令輸入錯誤的時候,
這個os.Popen() 就沒有辦法處理了:
os.Popen('lls -l ').read()
這個會以異常的方式出現
第三種比較好用的方法是: commands 類
import commands
(status, results) = commands.getstatusoutput('llls -l' )
對於這個錯誤的命令會被自動識別, 然后將錯誤的信息保存到results, 將錯誤的狀態值保存在status.
可以去吃午飯了,呵呵
