我需要从Python调用一个DOS .exe文件,并在计算后删除这个.exe。我可以使用 subprocess.Popen
和 os.system
调用它,但是,如果它是由 subprocess.Popen 调用的,我无法删除此 .exe 文件
。错误为 WindowsError:[错误 5] 访问被拒绝
。谁能告诉我如何终止这个进程?
谢谢!
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")
最佳答案
您需要等待该过程完成才能删除 .exe。在删除 .exe 之前调用 a.communicate() 或 a.wait()
关于python - 如何终止由 Python subprocess.Popen() 创建的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10390861/