1

我需要从 Python 调用一个 DOS .exe 文件并在计算后删除这个 .exe。我可以使用 调用它subprocess.Popenos.system但是,如果它被调用,我无法删除这个 .exe 文件subprocess.Popen。错误是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")
4

1 回答 1

2

在删除 .exe 之前,您需要等待该过程完成。在删除 .exe 之前调用 a.communicate() 或 a.wait()

于 2012-04-30T21:37:23.213 回答