2016-11-19 10 views
3

私はしばらくの間理解してきましたが、subprocess.callとsubprocess.runの違いは何ですか、私は最後のものがPython 3.5で新しくなりました。どちらもサブプロセスに基づいています.Popen、しかし私はまだその違いを理解することはできません。Pythonのsubprocess.callとsubprocess.runの違いは

+2

だけでドキュメントを確認します。call:これは同等です:。 ラン(...)(入力チェックのパラメータがサポートされていないことを除いて) をRETURNCODE –

答えて

2

subprocess.call()の定義を明確に述べて:

それに相当する:Python 3.5's subprocess documentとして(入力チェックパラメータがサポートされていないことを除いて) run(...).returncode

は言う:

Python 3.5より前では、これらの3つの機能(つまり、 .call(),.check_call(),.check_output())は、サブプロセスに対する高レベルのAPIを含んでいた。多くの場合、run()を使用できるようになりましたが、既存のコードではこれらの関数を多く呼びます。


いくつかの機能が交換されたとき、彼らはすぐに廃止予定されていないのが一般的であるが、いくつかのバージョンのためにそれらのためのサポート窓口があります。これにより、言語バージョンがアップグレードされたときに古いコードが破損するのを防ぐのに役立ちます。私は.call()が将来置き換えられるかどうか分からない。しかし、文書に基づいて、私が知っていることは、それらがほぼ同じであるということです。

関連する問題