Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何终止Python subprocess.Popen()创建的进程_Python_Subprocess - Fatal编程技术网

如何终止Python subprocess.Popen()创建的进程

如何终止Python subprocess.Popen()创建的进程,python,subprocess,Python,Subprocess,我需要从Python调用一个DOS.exe文件,并在计算后删除这个.exe文件。我可以使用subprocess.Popen和os.system调用它,但是,如果subprocess.Popen调用此.exe文件,则无法删除它。错误为WindowsError:[错误5]访问被拒绝。有人能告诉我如何终止这个过程吗? 谢谢 子流程方法(不起作用): os.system方法(工程): 在删除.exe之前,您需要等待进程完成。在删除.exe之前调用.communicate()或.wait() a = su

我需要从Python调用一个DOS.exe文件,并在计算后删除这个.exe文件。我可以使用
subprocess.Popen
os.system
调用它,但是,如果
subprocess.Popen
调用此.exe文件,则无法删除它。错误为
WindowsError:[错误5]访问被拒绝
。有人能告诉我如何终止这个过程吗? 谢谢

子流程
方法(不起作用):

os.system
方法(工程):


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

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"
a=os.system("dos.exe")
os.remove("dos.exe")