Python のサブプロセスの意味を知りたいのですが? Java のインターフェースに似ていますか、それともまったく別のトピックですか?
私はそれが次のような古いモジュールの代替であることを読みos.system
os.spawn*
os.popen*
popen2.*
commands.*
ましたが、同じことについて正確で説明的なチュートリアルをまだ取得できません。
それらは正確にどこで使用されていますか?
Python のサブプロセスの意味を知りたいのですが? Java のインターフェースに似ていますか、それともまったく別のトピックですか?
私はそれが次のような古いモジュールの代替であることを読みos.system
os.spawn*
os.popen*
popen2.*
commands.*
ましたが、同じことについて正確で説明的なチュートリアルをまだ取得できません。
それらは正確にどこで使用されていますか?
サブプロセスを作成するには!
これはオペレーティング システム(OS) の概念であり、Java インターフェイスとは関係ありません。
OS は、Python プログラムなどのプロセスを制御します。このsubprocess
モジュールを使用すると、OS にそのようなプロセスをさらに作成し、それらと通信するように依頼するのは簡単です。
プロセスは、親と子のツリー構造である階層で制御されます。コンピューターの起動時に OS カーネルで開始されたマスター プロセスが1 つあり、それ以外はすべて、そのマスター プロセスの直接のサブプロセスまたは間接的な子プロセスのいずれかです。
このモジュールは、C-API 関数 などの低レベルの直接変換よりも高いレベルの API を提供し、os.system
セキュリティos.spawn*
の問題に対する柔軟性と安全性を高めます。
Python のサブプロセスは、他の言語と同じです。
モジュールのドキュメントから読み取れるように、他のプログラムを生成し、それらの入力または出力を制御するために使用できます (また使用する必要があります)。
たとえば、データ ストリームの SHA1 合計を計算する場合は、sha1sum
バイナリを呼び出すサブプロセスをフォークして、データを標準入力に渡し、それを閉じて、標準出力から結果を読み取ることができます。(これを行うにはもっと良い方法があります。これは単なる例です。)
このモジュールはos.system
、安全性、柔軟性、使いやすさが向上するため、他の関連機能よりも優先されます。