2012-04-30 10 views
1

計算後に、この.exeをPythonからDOS .exeファイルを呼び出して削除する必要があります。 subprocess.Popenos.systemを使用して呼び出すことができますが、subprocess.Popenによって呼び出された場合、この.exeファイルを削除できませんでした。エラーはWindowsError: [Error 5] Access is deniedです。誰も私にこのプロセスを殺す方法を教えてもらえますか? ありがとう!Python subprocess.Popen()によって作成されたプロセスをkillする方法

subprocessアプローチ(動作しない):

a = subprocess.Popen("dos.exe", stdin=subprocess.PIPE, 
        stdout=subprocess.PIPE, stderr=subprocess.PIPE) 
time.sleep(5) 
a.kill() 
os.remove("dos.exe") 

# gets error msg "WindowsError: [Error 5] Access is denied" 

os.systemアプローチ(作品):

a=os.system("dos.exe") 
os.remove("dos.exe") 

答えて

2

あなたはプロセスが.exeのを削除する前に完了するのを待つ必要があります。 .exeを削除する前にa.communicate()またはa.wait()を呼び出してください

+0

ありがとうございます。できます! –

関連する問題