subprocess.popen和subprocess.run有什么区别
·
回答问题
我是subprocess模块的新手,文档让我想知道subprocess.popen和subprocess.run之间有什么区别。命令的作用有区别吗?一个只是更新吗?哪个更好用?
Answers
subprocess.run()是在 Python 3.5 中添加的是对subprocess.Popen的简化对于其他情况,您仍然需要使用subprocess.Popen。
主要区别在于subprocess.run()执行一个命令并等待它完成,而使用subprocess.Popen你可以在进程完成时继续做你的事情,然后自己重复调用Popen.communicate()来传递和接收数据到你的过程。其次,subprocess.run()返回subprocess.CompletedProcess。
subprocess.run()只是包装Popen和Popen.communicate()所以你不需要循环来传递/接收数据或等待过程完成。
查看官方文档以获取有关subprocess.run()传递给Popen和communicate()的参数的信息。
更多推荐

所有评论(0)