Pythonのsubprocessとmultiprocessingの比較と使い方
この記事ではPythonの`subprocess`モジュールと`multiprocessing`モジュールについて、それぞれの特性と使い方を深堀りしていきます。コード例やその詳細な解説、さらには応用例も含めてご紹介します。これらのモジュールはプロセスを扱う上で非常に便利であり、その選定によってプログラムの効率が大きく変わる可能性があります。
目次
`subprocess`モジュール
`subprocess`モジュールは外部プロセスを作成、入出力を操作、そしてその終了ステータスを待つための機能を提供します。
基本的な使い方
`sCode`
import subprocess
# コマンドラインで「ls」コマンドを実行する例
result = subprocess.run([‘ls’], capture_output=True, text=True)
print(result.stdout)
このコードは、UNIX系の`ls`コマンドを実行して、その結果を変数`result`に格納します。`capture_output=True`により、標準出力と標準エラー出力をキャプチャします。`text=True`は出力をテキスト形式で受け取るためのオプションです。
応用例1: パイプ処理
`sCode`
# lsとgrepをパイプでつなぐ例
p1 = subprocess.Popen([‘ls’], stdout=subprocess.PIPE)
p2 = subprocess.Popen([‘grep’, ‘.py’], stdin=p1.stdout, stdout=subprocess.PIPE)
p1.stdout.close()
output = p2.communicate()[0]
print(output.decode(‘utf-8’))
コメント