os.system()、so.popen()とcommandsの違い


最初はPythonでosを覚えました.System()この方法はC,Perlのように多く似ている.os.system('cat /proc/cpuinfo')
しかしこれでは出力や戻り値を得ることができず、Googleを続け、osを習得する.popen(). output = os.popen('cat /proc/cpuinfo')
print output.read()

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'

転載先http://blog.csdn.net/b_h_l/article/details/12654749