启动流程并阻止它完成的最佳方法

时间:2011-08-11 14:37:40

标签: python

我被告知subprocess.Popen没有阻塞,所以进程在后台运行,你的python程序不会等到它完成。但是,这不是我想要的。

我正在将程序调用到外部python程序中,我无法控制。它不返回任何返回代码,只是运行,对文件进行操作和完成。我想调用它,只在该调用完成后继续我的python程序。我该怎么做?

3 个答案:

答案 0 :(得分:5)

在子流程上调用communicatewait

答案 1 :(得分:2)

使用子流程中的call方法。

  

subprocess.call(* popenargs,** kwargs)   使用参数运行命令。等待命令完成,然后   返回returncode属性。

请参阅→http://docs.python.org/library/subprocess.html#subprocess.call

答案 2 :(得分:1)

最好的方法是使用communicate方法: http://docs.python.org/library/subprocess.html#subprocess.Popen.communicate

另请查看wait方法,它说明了为什么大多数时候您应该使用通信: http://docs.python.org/library/subprocess.html#subprocess.Popen.wait