最近在作那個測試框架的時候發現 Python 的另外一個得到系統執行命令的返回值和輸出的類。html
最開始的時候用 Python 學會了 os.system() 這個方法是不少好比 C,Perl 類似的。python
os.system('cat /proc/cpuinfo') 框架 |
可是這樣是沒法得到到輸出和返回值的,繼續 Google,以後學會了 os.popen()。
output = os.popen('cat /proc/cpuinfo') print output.read() post |
經過 os.popen() 返回的是 file read 的對象,對其進行讀取 read() 的操做能夠看到執行的輸出。可是怎麼讀取程序執行的返回值呢,固然咯繼續請教偉大的 Google。Google 給我指向了
commands — Utilities for running commands。
這樣經過 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' flex |