4

Python内で外部プログラムを呼び出し、その実行が完了するのを待たない方法はありますか?

私はこれを試しましたが、運がありません:

os.system("external_program &")

通常、external_program &bash シェル内で呼び出すと、バックグラウンド プロセスとして実行されます。どうすればPython内でそれを行うことができますか? 私の特別なケースでは、別のスレッドを作成しても機能しません。メインの python scrip が完了した後、外部プログラムは実行を継続する必要があります。

4

2 に答える 2

5

はい、subprocessモジュールを使用します。例えば:

p = subprocess.Popen(['external_program', 'arg1', 'arg2'])
# Process is now running in the background, do other stuff...
...
# Check if process has completed
if p.poll() is not None:
    ...
...
# Wait for process to complete
p.wait()
于 2013-06-07T14:37:14.680 に答える