私は単純なプログラムを持っています。その一部は、Web ブラウザーなどの他のプログラムを開くことです。
これはうまくos.system(sudo "program")
いきますが、プログラムが開くと、新しいプログラムが閉じるまで元のpythonプログラムでは何もできません。これが起こらないようにする方法はありますか?
私は単純なプログラムを持っています。その一部は、Web ブラウザーなどの他のプログラムを開くことです。
これはうまくos.system(sudo "program")
いきますが、プログラムが開くと、新しいプログラムが閉じるまで元のpythonプログラムでは何もできません。これが起こらないようにする方法はありますか?
サブプロセス。サブプロセス モジュールは制御を Python に戻し、パイプ経由で結果を取得します。
import subprocess as sp
proc = sp.Popen(["program", "arg1", "arg2"], shell=False, stdout=sp.PIPE, stderr=sp.PIPE)
ret, err = proc.communicate()
「プログラム」は proc= .... で始まりますが、proc.communicate(); を呼び出すと、結果 (メッセージ、エラー) がパイプに入ります。そうでない場合は、 stderr=sp.PIPE をスキップできます。