Python調用Shell,有兩種方法:os.system(cmd)或os.popen(cmd)腳本執行過程當中的輸出內容。實際使用時視需求狀況而選擇。
python
二者的區別是:sql
好比計算一個文件的md5值:shell
os.system(cmd):函數
該方法在調用完shell腳本後,返回一個信號代碼。spa
>>> os.system('md5sum /root/all.sql') 7735d611ebce91ebb4c7acc4747a8b67 /root/all.sql 0 #返回的信號代碼 0(成功)
os.popen(cmd):code
這種調用方式是經過管道的方式來實現,函數返回一個file-like的對象,裏面的內容是腳本輸出的內容(可簡單理解爲echo輸出的內容)。使用os.popen調用腳本的狀況:
如: 對象
>>> md5_value = os.popen('md5sum /root/all.sql') #將結果賦值給變量 >>> print(type(md5_value)) #查看類型 <class 'os._wrap_close'> >>> print(md5_value.read().split()[0]) #取值 7735d611ebce91ebb4c7acc4747a8b67
明顯地,像調用」ls」這樣的shell命令,應該使用popen的方法來得到內容blog