Pexpect in Python
Wir werden Pexpect
in Python mit Beispielen vorstellen.
Pexpect
in Python
Python ist eine sehr beliebte Sprache und wird für Data Science und maschinelles Lernen verwendet. Es ist eine sehr starke Sprache, da Python über integrierte Bibliotheken verfügt, die für verschiedene Zwecke verwendet werden können.
In diesem Artikel werden wir den pexpect
in Python untersuchen. Pexpect
ist eine leistungsstarke Bibliothek, mit der untergeordnete Prozesse erstellt und automatisch gesteuert werden.
Es kann Exploits testen oder jede erdenkliche Aufgabe ausführen.
Meistens kann es verwendet werden, um einen Anwendungsfall für das System zu testen, um zu überprüfen, wie es unter bestimmten Aufgaben funktioniert und wie gut das System unter diesen Aufgaben funktioniert. Wir können es auch verwenden, um einige kleine Aufgaben unseres täglichen Lebens zu automatisieren.
Wir können es verwenden, um Setup-Skripte zum Herunterladen von Softwarepaketen auf mehreren Servern zu organisieren. Pexpect
ist eine Python-Schnittstelle zur Expect
-Familie interaktiver Multithread-Befehlszeileninterpreter.
Pexpect
ist eine Bibliothek zum Spawnen von Netzwerkprogrammen auf einer entfernten Maschine über eine Netzwerkverbindung.
Es wird häufig zum Skripten von Netzwerkdiensten wie SSH oder Telnet verwendet. Es ist auch für eigenständige Spawning-Programme nützlich.
Lassen Sie uns nun das pexpect
in der Software installieren, an der wir arbeiten. Am einfachsten lässt sich pexpect
in Python mit dem Paketmanager pip
installieren.
Wir können es mit dem folgenden Befehl installieren.
pip install pexpect
Wenn Sie pip
nicht installiert haben, können Sie es mit dem folgenden Befehl installieren.
pip install python-pip
Methoden von Pexpect
in Python
Lassen Sie uns nun diskutieren, wie wir pexpect
in unseren Anwendungen verwenden können. Wir können pexpect
in unserer Anwendung mit drei verschiedenen Methoden verwenden.
Die erste Methode, die wir besprechen werden, ist die run()
-Methode.
die Run()
-Methode in Pexpect
Run()
ist eine leistungsstarke Methode von pexpect
, die verwendet werden kann, um einen Befehl auszuführen und das von diesem Befehl erhaltene Ergebnis zurückzugeben. Diese Methode ersetzt eine andere mächtige Bibliotheksmethode, das os.system
.
Lassen Sie uns nun diese Methode verwenden, um Hello World
mit dem Befehl echo
zu drucken. Zuerst importieren wir die Bibliothek pexpect
und verwenden danach die Methode run()
wie unten gezeigt.
# python
import pexpect
print(pexpect.run("echo Hello World"))
Ausgang:
Wie Sie im obigen Beispiel sehen können, hat unsere Methode den Befehlszeilencode in unserer Python-Datei mit der run()
-Methode von pexpect
ausgeführt.
Eine wichtige Sache, die beim obigen Beispiel zu beachten ist, ist, dass dieser Befehl auf einem Linux-System funktioniert, nicht auf Windows.
die Spawn()
-Methode in Pexpect
Jetzt werden wir eine andere Methode von pexpect
besprechen, die verwendet werden kann, um Kindprozesse hervorzubringen und sie zu kontrollieren. Da wir die Zeichenfolge in der Methode run()
durch eine Eingabeaufforderung ersetzt haben, können wir dasselbe in spawn()
tun und damit einen Shell-Befehl ausführen und das Ergebnis nach der Ausführung abrufen.
Lassen Sie uns es nun in unserem Beispiel verwenden, in dem wir einen untergeordneten Prozess mit der Methode spawn()
starten. Wir werden das gleiche Szenario verwenden, um die Zeichenfolge mit spawn
zu echon
.
Danach senden wir ein Array an die expect()
-Methode, um den obigen Befehl aus den Strings in einem Array abzugleichen und die Position des Elements zurückzugeben, die unserem Befehl entsprach, wie unten gezeigt.
# python
import pexpect
childProcess = pexpect.spawn("echo Hello World")
# prints he matched index of string.
print(childProcess.expect(["Python", "Hello World", "Child Process"]))
Ausgang:
Wie Sie im obigen Beispiel sehen können, war die Position der Zeichenfolge im Array die zweite, und das Array beginnt bei 0, sodass es die richtige Position ausgibt.
In diesem Artikel haben wir drei Methoden von pexpect
besprochen, die verwendet werden können, um verschiedene Funktionen auszuführen, und sie können zusammen verwendet werden, um daraus eine große Funktion zu machen, wie im letzten Beispiel.
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