在python中,subprocess.call会在每次调用时生成一个单独的子进程吗?

时间:2016-04-27 06:21:39

标签: python subprocess

如果调用subprocess.call N次,我想知道是否会创建N子进程。

子进程何时关闭?我应该手动杀死它吗?

subprocess.Popen怎么样?

2 个答案:

答案 0 :(得分:3)

subprocess.call每次调用时都会创建一个进程并等待命令完成。因此,由于等待命令完成的性质,没有真正的并行处理。

subprocess.Popen每次调用时都会创建一个进程,但不会等待命令完成。您可以使用communicate等待命令完成或致电kill

总结一下。使用subprocess.Popen,您可以更好地控制自己创建的流程。

python documentation

中描述

答案 1 :(得分:1)

是的,每次致电Public objExcel As Object 'instead of Excel.Application Set objExcel = CreateObject("Excel.Application") 或其任何亲属(包括subprocess.call())时,都会产生新流程。您不需要正常地显式杀死子进程 - 您只需等待它们退出。