2012-04-30 66 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

谢谢。有用! –