私はしばらくの間、subprocess.call
との違いは何かを理解しようとしてきましたsubprocess.run
。 最後の は Python 3.5 で新しく追加されたもので、両方とも に基づいていることは知っていますsubprocess.Popen
が、まだ違いを理解できていません。
ベストアンサー1
の定義subprocess.call()
明確に言及している:
これは次のコードと同等です
run(...).returncode
(ただし、入力そしてチェックパラメータはサポートされていません)
としてPython 3.5 のサブプロセスドキュメント言う:
Python 3.5 より前では、これら 3 つの関数 (つまり、、
.call()
)がサブプロセスへの高レベル API を構成していました。今では多くの場合で を使用できますが、多くの既存コードはこれらの関数を呼び出します。.check_call()
.check_output()
run()
一部の関数が置き換えられる場合、すぐに廃止されるのではなく、一部のバージョンではサポート期間が設けられるのが一般的です。これにより、言語バージョンがアップグレードされたときに古いコードが壊れるのを防ぐことができます。.call()
将来置き換えられるかどうかはわかりません。しかし、ドキュメントに基づいて私が知っていることは、それらはほぼ同じであるということです。