Expectativa en Python

Rana Hasnain Khan 15 febrero 2024
  1. Pesperar en Python
  2. Métodos de Pexpect en Python
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:

pexpect método de ejecución en el sistema linux

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:

pexpect genera y espera el método en el sistema linux

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 Hasnain Khan avatar Rana Hasnain Khan avatar

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