Expectativa en Python
Presentaremos Pexpect
en Python con ejemplos.
Pesperar
en Python
Python es un lenguaje muy popular y se utiliza para la ciencia de datos y el aprendizaje automático. Es un lenguaje muy fuerte porque Python tiene bibliotecas integradas que se pueden usar para diferentes propósitos.
En este artículo, estudiaremos el pexpect
en Python. Pexpect
es una poderosa biblioteca utilizada para crear procesos secundarios y controlarlos automáticamente.
Puede probar exploits o realizar cualquier tarea que se nos ocurra.
En su mayoría, se puede usar para probar un caso de uso del sistema para verificar cómo funciona bajo ciertas tareas y qué tan bien se desempeña el sistema bajo esas tareas. También podemos usarlo para automatizar algunas pequeñas tareas que forman parte de nuestra vida diaria.
Podemos usarlo para organizar scripts de configuración para descargar paquetes de software en múltiples servidores. Pexpect
es una interfaz de Python para la familia Expect
de intérpretes de línea de comandos interactivos y multiproceso.
Pexpect
es una biblioteca para generar programas en red en una máquina remota a través de una conexión de red.
Se usa comúnmente para servicios de red de secuencias de comandos, como SSH o Telnet. También es útil para programas de desove independientes.
Ahora instalemos el pexpect
en el software en el que estamos trabajando. La forma más fácil de instalar pexpect
en Python es con el administrador de paquetes pip
.
Podemos instalarlo con el siguiente comando.
pip install pexpect
Si no tienes instalado pip
, puedes instalarlo con el siguiente comando.
pip install python-pip
Métodos de Pexpect
en Python
Ahora, analicemos cómo podemos usar pexpect
en nuestras aplicaciones. Podemos usar pexpect
en nuestra aplicación con tres métodos diferentes.
El primer método que discutiremos es el método run()
.
el método Run()
en Pexpect
Run()
es un poderoso método de pexpect
que se puede usar para ejecutar un comando y devolver el resultado recibido de ese comando. Este método reemplaza a otro poderoso método de biblioteca, os.system
.
Ahora, usemos este método para imprimir Hello World
usando el comando echo
. En primer lugar, importaremos la biblioteca pexpect
, y después de eso, usaremos el método run()
como se muestra a continuación.
# python
import pexpect
print(pexpect.run("echo Hello World"))
Producción:
Como puede ver en el ejemplo anterior, nuestro método ejecutó el código de la línea de comando dentro de nuestro archivo Python usando el método run()
de pexpect
.
Una cosa importante a tener en cuenta del ejemplo anterior es que este comando funcionará en un sistema Linux, no en Windows.
el método Spawn()
en Pexpect
Ahora discutiremos otro método de pexpect
que se puede usar para generar procesos secundarios y controlarlos. Como reemplazamos la cadena dentro del método run()
con un indicador de línea de comando, podemos hacer lo mismo en spawn()
y usarlo para ejecutar un comando de shell y obtener el resultado después de ejecutarlo.
Ahora, usémoslo en nuestro ejemplo en el que iniciaremos un proceso hijo usando el método spawn()
. Usaremos el mismo escenario para “hacer eco” de la cadena usando spawn()
.
Después de eso, enviaremos una matriz al método expect()
para hacer coincidir el comando anterior de las cadenas en una matriz y devolver la posición del elemento que coincidió con nuestro comando, como se muestra a continuación.
# python
import pexpect
childProcess = pexpect.spawn("echo Hello World")
# prints he matched index of string.
print(childProcess.expect(["Python", "Hello World", "Child Process"]))
Producción:
Como puede ver en el ejemplo anterior, la posición de la cadena en la matriz fue la segunda y la matriz comienza desde 0, por lo que genera la posición correcta.
En este artículo, discutimos tres métodos de pexpect
que se pueden usar para realizar diferentes funciones, y se pueden usar juntos para convertirlo en una gran función, como en el último ejemplo.
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