8.15 標準モジュール commands

 

commandsモジュールは、システムコマンドを文字列として受け取り そのコマンドが生成する出力とオプションで終了ステータスを返す os.popen()に対するラッパー関数を含んでいます。

commandsモジュールはos.popen()をサポートするシステム (現在のところUnix)のみで利用できます。このモジュールは以下の関数を定義 しています。

getstatusoutput (cmd)
文字列cmdos.popen()を使ってシェルで実行し、 タプル(status, output)を返します。 cmdは実際には{ cmd ; } 2>&1として実行されるので、 返される結果はコマンド出力またはエラーメッセージを含みます。 最後の改行は出力からは取り除かれます。コマンドに対する終了ステータスは、 C関数wait()に対する規則に従って翻訳可能です。

getoutput (cmd)
getstatusoutput()に似ていますが、終了ステータスは無視され、戻り値は そのコマンドの出力を含む文字列になります。

getstatus (file)
"ls -ld file"の出力を文字列として返します。この関数は getoutput()関数を使い、引き数内のバックスラッシュとダラーサインを 適切にエスケープします。

例:

>>> 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'

guido@python.org