我需要从Python调用DOS .exe文件并在计算后删除此.exe文件。我可以使用subprocess.Popen
和os.system
来调用它,但是,如果由subprocess.Popen
调用,则无法删除此.exe文件。错误是WindowsError: [Error 5] Access is denied
。任何人都可以让我知道如何杀死这个过程?
谢谢!
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")
答案 0 :(得分:2)
在删除.exe之前,您需要等待该过程完成。在删除.exe
之前调用a.communicate()或a.wait()