回答问题

我是subprocess模块的新手,文档让我想知道subprocess.popensubprocess.run之间有什么区别。命令的作用有区别吗?一个只是更新吗?哪个更好用?

Answers

subprocess.run()是在 Python 3.5 中添加的是对subprocess.Popen的简化对于其他情况,您仍然需要使用subprocess.Popen

主要区别在于subprocess.run()执行一个命令并等待它完成,而使用subprocess.Popen你可以在进程完成时继续做你的事情,然后自己重复调用Popen.communicate()来传递和接收数据到你的过程。其次,subprocess.run()返回subprocess.CompletedProcess

subprocess.run()只是包装PopenPopen.communicate()所以你不需要循环来传递/接收数据或等待过程完成。

查看官方文档以获取有关subprocess.run()传递给Popencommunicate()的参数的信息。

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐