36.16. コマンド—コマンドを実行するためのユーティリティ—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/2.7/library/commands
移動先:案内検索

36.16。 コマンド —コマンドを実行するためのユーティリティ

バージョン2.6以降非推奨: コマンドモジュールはPython3で削除されました。 代わりにサブプロセスモジュールを使用してください。


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

サブプロセスモジュールは、新しいプロセスを生成してその結果を取得するためのより強力な機能を提供します。 コマンドモジュールを使用するよりも、サブプロセスモジュールを使用することをお勧めします。

ノート

Python 3.xでは、 getstatus()と2つの文書化されていない関数(mk2arg()mkarg())が削除されました。 また、 getstatusoutput()および getoutput()サブプロセスモジュールに移動されました。


コマンドモジュールは、次の機能を定義します。

commands.getstatusoutput(cmd)
os.popen()を使用してシェルで文字列 cmd を実行し、2タプル(status, output)を返します。 cmd は実際には{ cmd ; } 2>&1として実行されるため、返される出力には出力またはエラーメッセージが含まれます。 末尾の改行は出力から削除されます。 コマンドの終了ステータスは、C関数wait()の規則に従って解釈できます。
commands.getoutput(cmd)
getstatusoutput()と同様ですが、終了ステータスが無視され、戻り値がコマンドの出力を含む文字列である点が異なります。
commands.getstatus(file)

ls -ld fileの出力を文字列として返します。 この関数は getoutput()関数を使用し、引数の円記号とドル記号を適切にエスケープします。

バージョン2.6以降非推奨:この関数は自明ではなく、役に立たない。 この名前は、 getstatusoutput()が存在する場合にも誤解を招く可能性があります。

例:

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

も参照してください

モジュールサブプロセス
サブプロセスを生成および管理するためのモジュール。