什么';这就是Python和x27之间的区别;s subprocess.call和subprocess.run

什么';这就是Python和x27之间的区别;s subprocess.call和subprocess.run,python,subprocess,Python,Subprocess,我一直在试图理解subprocess.call和subprocess.run之间的区别。我知道最后一个是Python 3.5的新版本,它们都基于subprocess.Popen,但我还不能理解其中的区别。的定义明确提到: 这相当于: run(…).returncode (不支持输入和检查参数除外) 正如政府所说: 在Python 3.5之前,这三个函数(即.call(),.check\u call(),.check\u output())构成子流程的高级API。您现在可以在许多情况下使用run(

我一直在试图理解
subprocess.call
subprocess.run
之间的区别。我知道最后一个是Python 3.5的新版本,它们都基于
subprocess.Popen
,但我还不能理解其中的区别。

的定义明确提到:

这相当于:
run(…).returncode
(不支持输入和检查参数除外)

正如政府所说:

在Python 3.5之前,这三个函数(即
.call()
.check\u call()
.check\u output()
)构成子流程的高级API。您现在可以在许多情况下使用
run()
,但许多现有代码都调用这些函数



通常的做法是,当某些函数被替换时,它们不会立即被弃用,但对于某些版本,它们有一个支持窗口。这有助于在升级语言版本时防止旧代码被破坏。我不知道
.call()
将来是否会被替换。但根据文档,我知道它们基本相同。

为了让任何想知道使用哪一个的人明白:

是它可以处理的所有用例的推荐方法。各国:

建议调用子流程的方法是对它可以处理的所有用例使用run()函数。对于更高级的用例,可以直接使用底层的Popen接口


是的一部分(在Python 3.5之前)。

只需查看文档:call:这相当于:run(…).returncode(不支持输入和检查参数除外)