python:subprocess

文書の過去の版を表示しています。


Python モジュール: subprocess

  • 複数のプロセスを制御するモジュール
  • 以下の場合に使う
    • 関数を別プロセスで並列で処理したい
    • 外部プログラムを呼び出したい
import subprocess
  • プロセス実行メソッドは大きく分けて run()Popen() がある。
    subprocess.run(COMMAND, OPTIONS)
    subprocess.Popen(COMMAND, OPTIONS)
  • Popen()run() より細かな制御ができる。
  • run() には、旧メソッドの call()check_all()check_output() が統合されている。
  • run()Popen() の共通オプション
    • shell = True | False (デフォルトは False):
      • True の場合、実行コマンド COMMAND を linux のコマンドのように文字列で与える。
        • 引数の区切りをスペースとしているため、スペースを含む引数を与えると、誤認識する。
      • False の場合、実行コマンド COMMAND をリストで与える。
        • ワイルドカードでの指定ができなくなる。
    • stdin = open(FILE_NAME, “rb”): コマンドの標準入力に FILE_NAME から読み出したデータを与える。
    • stdout = open(FILE_NAME, “wb”): コマンドの標準出力を FILE_NAME に書き出す。
    • stderr = open(FILE_NAME, “wb”): コマンドの標準エラーを FILE_NAME に書き出す。
    • stdinstdoutstderr の場合、ファイルの扱いは byte 型の方が問題が起こりにくい。
    • timeout = X: タイムアウトの秒数 X を指定する (ネットワークを利用するコマンド)。
終了ステータス 出力結果 エラー例外
run() での引数や属性 .returncode .stdout check
call()
check_call()
check_output()
  • python/subprocess.1590115862.txt.gz
  • 最終更新: 2020/05/22 11:51
  • by mumeiyamibito