Python でプログラムを実行する方法

Python でプログラムを実行する場合には subprocess を使います。

 

基本的な使い方は以下の通りです。

 import subprocess

proc = subprocess.Popen([r"c:\Windows\system32\notepad.exe","test.txt"])
proc.wait(timeout=60)

 

上記では、notepad.exe で test.txt を起動しています。コマンドとその引数を指定する場合には配列を使って指定します。

 

subprocess は起動したプログラムの終了を待たないので、wiat を使って処理完了をするのを待ちます。この時、タイムアウトを指定することができます。上記の例では、60秒です。タイムアウトすると、プログラムが終了するのではなく、TimeoutExpired という例外が発生します。

 

処理を待つには、poll を使うこともできます。

 import subprocess

proc = subprocess.Popen(r"c:\Windows\system32\notepad.exe")
while True:
return_code = proc.poll()
if return_code is None:
time.sleep(3)
else:
break

 

上記の例では、3秒おきに状態確認をしています。None でなくなったら、break し、後続の処理が行われます。