調用系統命令 os.system()和os.popen()


Python中os.system和os.popen區別

     Python調用Shell,有兩種方法:os.system(cmd)或os.popen(cmd)腳本執行過程中的輸出內容。實際使用時視需求情況而選擇。

兩者的區別是:

  • os.system(cmd)的返回值是腳本的退出狀態碼,只會有0(成功),1,2
  • os.popen(cmd)返回腳本執行的輸出內容作為返回值

 比如計算一個文件的md5值:

os.system(cmd):

   該方法在調用完shell腳本后,返回一個信號代碼。

1
2
3
>>> os.system( 'md5sum /root/all.sql' )
7735d611ebce91ebb4c7acc4747a8b67  / root / all .sql
0      #返回的信號代碼  0(成功)

 

 

os.popen(cmd):

   這種調用方式是通過管道的方式來實現,函數返回一個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的方法來獲得內容

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM