Python での Pexpect
Python での Pexpect
を例を挙げて紹介します。
Python のPexpect
Python は非常に人気のある言語であり、データ サイエンスや機械学習に使用されています。 Python にはさまざまな目的に使用できる組み込みライブラリがあるため、非常に強力な言語です。
この記事では、Python の pexpect
について学習します。 Pexpect
は、子プロセスを作成し、それらを自動的に制御するために使用される強力なライブラリです。
エクスプロイトをテストしたり、考えられるあらゆるタスクを実行したりできます。
ほとんどの場合、システムのユースケースをテストして、特定のタスクでシステムがどのように機能するか、およびそれらのタスクでシステムがどの程度うまく機能するかを確認するために使用できます。 また、日常生活の一部の小さなタスクを自動化するためにも使用できます。
これを使用して、複数のサーバーにソフトウェア パッケージをダウンロードするためのセットアップ スクリプトを整理できます。 Pexpect
は、インタラクティブなマルチスレッド コマンドライン インタープリターの Expect
ファミリーへの Python インターフェイスです。
Pexpect
は、ネットワーク接続を介してリモート マシン上でネットワーク化されたプログラムを生成するためのライブラリです。
これは、SSH や Telnet などのネットワーク サービスのスクリプト作成によく使用されます。 また、スタンドアロンのスポーン プログラムにも役立ちます。
作業中のソフトウェアに pexpect
をインストールしましょう。 pexpect
を Python にインストールする最も簡単な方法は、pip
パッケージ マネージャーを使用することです。
次のコマンドでインストールできます。
pip install pexpect
pip
がインストールされていない場合は、次のコマンドでインストールできます。
pip install python-pip
Python での Pexpect
のメソッド
それでは、アプリケーションで pexpect
を使用する方法について説明しましょう。 アプリケーションで pexpect
を 3つの異なる方法で使用できます。
最初に説明するメソッドは run()
メソッドです。
Pexpect
の Run()
メソッド
Run() は pexpect の強力なメソッドで、コマンドを実行し、そのコマンドから受け取った結果を返すために使用できます。 このメソッドは、別の強力なライブラリ メソッドであるos.system
を置き換えます。
それでは、このメソッドを使用して、echo
コマンドを使用して Hello World
を出力してみましょう。 まず、pexpect
ライブラリをインポートし、その後、以下に示すように run()
メソッドを使用します。
# python
import pexpect
print(pexpect.run("echo Hello World"))
出力:
上記の例からわかるように、このメソッドは、pexpect
の run()
メソッドを使用して、Python ファイル内のコマンド ライン コードを実行しました。
上記の例で注意すべき重要な点の 1つは、このコマンドが Windows ではなく Linux システムで機能することです。
Pexpect
の Spawn()
メソッド
次に、子プロセスを生成して制御するために使用できる pexpect
の別の方法について説明します。 run()
メソッド内の文字列をコマンド ライン プロンプトに置き換えたので、spawn()
で同じことを行い、それを使用してシェル コマンドを実行し、実行後に結果を取得できます。
それでは、spawn()
メソッドを使用して子プロセスを開始する例で使用してみましょう。 同じシナリオを使用して、spawn
を使用して文字列を echo
します。
その後、以下に示すように、配列を expect()
メソッドに送信して、配列内の文字列から上記のコマンドに一致させ、コマンドに一致した要素の位置を返します。
# python
import pexpect
childProcess = pexpect.spawn("echo Hello World")
# prints he matched index of string.
print(childProcess.expect(["Python", "Hello World", "Child Process"]))
出力:
上記の例からわかるように、配列内の文字列の位置は 2 番目であり、配列は 0 から始まるため、正しい位置を出力します。
この記事では、異なる機能を実行するために使用できる pexpect
の 3つの方法について説明しました。これらを組み合わせて使用すると、最後の例のように大きな機能にすることができます。
Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.
LinkedIn