The definition of subprocess.call()
clearly mentions:
It is equivalent to:
run(...).returncode
(except that the input and check parameters are not supported)
As the Python 3.5’s subprocess document says:
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 userun()
in many cases, but lots of existing code calls these functions.
It is a common practice that when some functions are replaced, they are not instantly deprecated but there is a support window for them for some versions. This helps in preventing the breakage of older code when the language version is upgraded. I do not know whether .call()
is going to be replaced in the future or not. But based on the document, what I know is that they are pretty much same.