繁体   English   中英

启动进程并阻塞直到完成的最佳方法

[英]Best way to launch a process and block until it is finished

我被告知 subprocess.Popen 不会阻塞,因此该进程在后台运行,并且您的 python 程序不会等到它完成。 然而,这不是我想要的。

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

调用通信等待子进程。

使用来自子进程的call方法。

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

见 → http://docs.python.org/library/subprocess.html#subprocess.call

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

也看看wait方法,它说明了为什么大多数时候你应该使用通信来代替: http://docs.python.org/library/subprocess.html#subprocess.Popen.wait

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM