最近有個需求就是頁面上執行shell指令,
第一種就是os.system,
程式碼如下:
os.system('cat /proc/cpuinfo')
但是發現頁面上列印的指令執行結果0或1,當然不滿足需求了。
嘗試第二種方案os.popen()
程式碼如下:
output = os.popen('cat /proc/cpuinfo') print output.read()
透過os.popen() 傳回的是file read 的對象,對其進行讀取read() 的操作可以看到執行的輸出。但是無法讀取程式執行的回傳值)
嘗試第三種方案 commands.getstatusoutput() 一個方法就可以取得到回傳值和輸出,非常好用。
程式碼如下:
(status, output) = commands.getstatusoutput('cat /proc/cpuinfo') print status, output
Python Document 中給的一個例子,
程式碼如下:
>>> import commands >>> commands.getstatusoutput('ls /bin/ls') (0, '/bin/ls') >>> commands.getstatusoutput('cat /bin/junk') (256, 'cat: /bin/junk: No such file or directory') >>> commands.getstatusoutput('/bin/junk') (256, 'sh: /bin/junk: not found') >>> commands.getoutput('ls /bin/ls') '/bin/ls' >>> commands.getstatus('/bin/ls') '-rwxr-xr-x 1 root 13352 Oct 14 1994 /bin/ls'
以上是詳解python執行shell指令的三種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!