Pythonにおけるsubprocessの簡単な使用例

1182 ワード

c言語では、1つのプロセスがforkでサブプロセスを出し、このサブプロセスexecに新しいコマンドを与えることができます.pythonでは、標準ライブラリのsubprocessパッケージを使用してサブプロセスをforkし、サブプロセスで新しいプログラムを実行します.
subprocessパッケージには、サブプロセスを作成する関数がいくつかあります.これらの関数は、それぞれ異なる方法でサブプロセスを作成するので、必要に応じて使用を選択できます.さらにsubprocessは、プロセス間でテキスト通信を使用するために標準ストリームとパイプを管理するツールも提供しています.
subprocessパッケージの関数を使用してサブプロセスを作成する場合は、次の点に注意してください.
  • 子プロセスの作成後、親プロセスが一時停止し、子プロセスの実行を待つかどうか.
  • 関数は、
  • を返します.
  • return codeが0でない場合、親プロセスはどのように処理されますか.

  • subprocess.call()
    関数のプロトタイプ:
    
       subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False, timeout=None) 
       
       
     

    関数の説明:
    親プロセスは、子プロセスが完了するのを待って、実行が成功したかどうかを返します.
    
       subprocess.Popen 
     

    関数のプロトタイプ:
    
       subprocess.Popen(args, bufsize=-1, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=True, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0, restore_signals=True, start_new_session=False, pass_fds=()) 
     

    Popenオブジェクトが作成されると、メインプログラムはサブプロセスの完了を自動的に待つことはありません.親プロセスが待つ(つまりブロックブロック)ために[/code]オブジェクトのwait()メソッドを呼び出さなければなりません.