2012-04-30 103 views
1

創建的進程我需要從Python中調用DOS .exe文件並在計算後刪除此.exe。我可以使用subprocess.Popenos.system來調用它,但是,如果它被subprocess.Popen調用,我無法刪除此.exe文件。錯誤是WindowsError: [Error 5] Access is denied。任何人都可以讓我知道如何殺死這個過程? 謝謝!如何殺死由Python subprocess.Popen()

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

謝謝。有用! –