Unix, Windowsプラットフォームで利用できます。
このモジュールにより、Unix および Windows でプロセスを起動し、 その入力/出力/エラー出力パイプに接続し、そのリターンコード を取得することができます。
Python 2.0 から、この機能は os モジュールにある 関数を使って得ることができるので注意してください。 os にある関数はこのモジュールにおけるファクトリ関数 と同じ名前を持ちますが、戻り値に関する取り決めは os の関数の方がより直感的です。
このモジュールで提供されている第一のインタフェースは 3 つの
ファクトリ関数です。これらの関数のいずれも、bufsize を
指定した場合、 I/O パイプのバッファサイズを決定します。
mode を指定する場合、文字列'b'
または 't'
でなければなりません; Windows では、ファイルオブジェクトを
バイナリあるいはテキストモードのどちらで開くかを決めなければ
なりません。mode の標準の値は 't'
です。
Unixではcmdはシーケンスでもよく、その場合には (os.spawnv()のように)引数はプログラムシェルを経由せず直接渡 されます。 cmdが文字列の場合、(os.system()のように)シェルに渡されます。
子プロセスからのリターンコードを取得するには、Popen3 および Popen4 クラスの poll() あるいは wait() メソッドを使うしかありません; これらの機能は Unixでしか利用できません。この情報は popen2()、 popen3()、および popen4() 関数、 あるいは os モジュールにおける同等の関数の 使用によっては得ることができません。 (osモジュールの関数から返されるタプルはpopen2モ ジュールの関数から返されるものとは違う順序です。)
cmd[, bufsize[, mode]]) |
(child_stdout, child_stdin)
を返します。
cmd[, bufsize[, mode]]) |
(child_stdout, child_stdin, child_stderr)
を返します。
cmd[, bufsize[, mode]]) |
(child_stdout_and_stderr, child_stdin)
.
バージョン 2.0 で 新たに追加 された仕様です。
Unixでは、ファクトリ関数によって返されるオブジェクトを定義している クラスも利用することができます。これらのオブジェクトは Windows 実装 で使われていないため、そのプラットフォーム上で使うことはできません。
cmd[, capturestderr[, bufsize]]) |
Popen3 オブジェクトを生成するためにいずれかのヘルパー関数を 使っていないのなら、cmd パラメタは子プロセスで実行する シェルコマンドになります。capturestderr フラグが真であれば、 このオブジェクトが子プロセスの標準エラー出力を捕獲しなければならない ことを意味します。標準の値は偽です。bufsize パラメタが存在 する場合、子プロセスへの/からの I/O バッファのサイズを指定します。
cmd[, bufsize]) |