Python的subprocess.call和subprocess.run之间有什么区别

我一直试图理解一下,现在subprocess.call和subprocess.run之间的区别是什么.我知道最后一个是Python 3.5上的新内容,两者都基于subprocess.Popen,但我还不能理解其中的差异.

解决方法:

subprocess.call()的定义明确提到:

It is equivalent to:
run(...).returncode
(except that the input and check parameters are not supported)

正如Python 3.5’s subprocess document所说:

Prior to Python 3.5, these three functions (i.e. .call(), .check_call(), .check_output()) comprised the high level API to subprocess. You can now use run() in many cases, but lots of existing code calls these functions.

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

上一篇:如何使用python以编程方式计算存档中的文件数


下一篇:像命令行模拟器一样使用python子进程模块