ホームページ  >  記事  >  バックエンド開発  >  subprocess モジュールを使用して Python 3.x で外部コマンドを実行する方法

subprocess モジュールを使用して Python 3.x で外部コマンドを実行する方法

WBOY
WBOYオリジナル
2023-07-30 17:01:23972ブラウズ

subprocess モジュールを使用して Python 3 で外部コマンドを実行する方法.x

Python では、他のプログラムの実行やシェル コマンドの実行など、システム コマンドを実行する必要がよくあります。 Python には subprocess モジュールが用意されており、これにより外部コマンドを簡単に呼び出してその出力を取得できるようになります。

この記事では、Python 3.x の subprocess モジュールを使用して外部コマンドを実行する方法を紹介し、いくつかのサンプル コードを提供します。

  1. subprocess.run() 関数を使用して外部コマンドを実行する
    subprocess.run() 関数は、Python 3.5 以降のバージョンの新しい関数であり、指定された外部コマンドを実行するために使用されます。

これは、subprocess.run() 関数を使用して外部コマンドを実行し、コマンドの出力を取得する方法を示す簡単な例です。 subprocess.run() 関数は

ls -l

コマンドを実行します。ここでは 2 つのパラメータを使用してコマンドの実行を制御します。capture_output=True はコマンドの出力を結果オブジェクトにキャプチャすることを意味し、text=True は出力をテキスト形式で返すことを意味します。

subprocess.Popen() 関数を介して外部コマンドを実行する
    subprocess モジュールは、より複雑なコマンドと制御を実行するために使用できる下位レベルのインターフェイスである Popen クラスも提供します。入出力をより細かく制御するためのコマンド。

  1. 次の例は、subprocess.Popen() 関数を使用して外部コマンドを実行し、コマンドの出力を行ごとに読み取る方法を示しています。上記のコードでは、subprocess.Popen() 関数を使用して
ping www.baidu.com

コマンドを実行し、コマンドの出力を stdout パイプ経由で返しました。標準出力パイプを走査してコマンドの出力を 1 行ずつ読み取り、コンソールに出力します。

Popen クラスを使用してコマンドを実行する場合、コマンドの実行を自動的に待機しないことに注意してください。コマンドの実行を待つ必要がある場合は、process.wait() 関数を使用してこれを実現できます。

subprocess.call() 関数を使用して外部コマンドを実行する

subprocess モジュールには、外部コマンドを実行し、その実行が完了するのを待つために使用される call 関数も用意されています。

  1. 次の例は、subprocess.call() 関数を使用して外部コマンドを実行し、コマンドの戻りコードを取得する方法を示しています。コードでは、サブプロセスを使用します。 .call() 関数は、
    git clone
  2. コマンドを実行し、ウェアハウスのアドレスをパラメーターとして渡します。 subprocess.call() 関数を呼び出してコマンドを実行した後、プログラムはコマンドが実行されるまでブロックされます。

ここでは、return_code によってコマンドのリターン コードを取得でき、リターン コードに基づいてコマンドが正常に実行されたかどうかを判断できます。

概要: subprocess モジュールを使用すると、Python で外部コマンドを簡単に実行し、コマンドの出力と戻りコードを取得できます。この記事では、よく使用される 3 つのメソッド、subprocess.run()、subprocess.Popen()、および subprocess.call() を紹介します。さまざまなニーズに応じて、適切な方法を選択して外部コマンドを実行します。

この記事が、subprocess モジュールを使用して Python 3.x で外部コマンドを実行する方法を理解するのに役立つことを願っています。

以上がsubprocess モジュールを使用して Python 3.x で外部コマンドを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。