Cómo usar el subproceso de Python con tuberías?

Cómo usar el subproceso de Python con tuberías?
Python es el lenguaje de alto nivel más común perfecto para principiantes. Es útil para el aprendizaje automático, el desarrollo web y otras funcionalidades. Es uno de los lenguajes de programación más sencillos y accesibles para ayudar a los programadores a escribir código claro, preciso y simple. Proporciona muchas funciones incorporadas, métodos fáciles de entender y varios subprocesos que permiten al usuario ejecutar comandos de Linux, C, C ++ o Java directamente desde Python. Este artículo discutirá el uso de subprocesos en Python y explicará cómo se pueden combinar esos subprocesos con tuberías. Así que empezamos.

La documentación oficial de Python proporciona una explicación detallada del subproceso en Python y cómo usar el subproceso de Python con tuberías, y es beneficioso para fines de comprensión y desarrollo. Sin embargo, la documentación completa puede ser un poco abrumadora para los principiantes. Además, la sintaxis puede variar de una versión a otra de Python, que puede confundir a los principiantes.

Por lo tanto, tenemos una solución para usted, y aquí explicamos el proceso paso a paso de usar el subproceso de Python con tuberías. Explicaremos el proceso con la ayuda de ejemplos, así que vayamos más allá para ver los ejemplos, pero, primero, veamos qué es una tubería para un subproceso en Python. La tubería en Python se usa para enviar o recibir datos de un programa que se ejecuta como subproceso en Python. Para hacer esto, podemos usar una combinación de tubo que básicamente está creando la tubería, un tenedor se utiliza para crear el subproceso en el programa, dup2 se usa para obligar al subproceso a usar la tubería como un canal de entrada y salida estándar, y por último, ejecución se usa para ejecutar o ejecutar el nuevo programa. Además, Popen y PClose se utilizan para abrir o cerrar el programa, respectivamente.

El beneficio de usar Popen y PClose es que sugiere una interfaz simple y fácil de usar. Sin embargo, no proporciona mucha flexibilidad porque utiliza directamente funciones de bajo nivel. Veamos los ejemplos a continuación.

Ejemplo 1:

El primer ejemplo explicará cómo codificar el comando que contiene una tubería y una redirección. Veamos el ejemplo:

ZCAT F1.dat.GZ F2.dat.GZ | Pigz>.GZ

Aquí está el código de Python que explica cómo implementar el comando UNIX con subprocesos en Python.

P1 = subprocesamiento.Popen (["ZCAT", "F1.dat.GZ "," F2.dat.GZ "],
stdout = subproceso.TUBO)
Fout = Open ('Out.GZ ',' WB ')
P2 = subprocesamiento.run (['pigz'], stdin = p1.stdout, stdout = fout) a

Tenga en cuenta que el método popen () se usa con el primer subproceso, mientras que el método Run () se usa con la segunda llamada que codifica las redirecciones. El error posterior se causará si el método run () se usa con la tubería misma.

Ejemplo 2:

Este ejemplo explicará cómo un programa de Python pregunta el nombre de un usuario. Luego se hace eco con un mensaje de saludo y solicita repetidamente los nombres hasta que el usuario ingrese a la 'salida.'Cuando el usuario ingresa' salida 'en la respuesta de preguntar el nombre, la condición if se reunió con los criterios y la ejecución del programa se detiene. Vea el código que se da a continuación.

Sys de importación
Imprimir ("¿Cuál es su nombre??")
Para el nombre en Iter (sys.stdin.Readline, "):
nombre = nombre [:-1]
Si nombre == "Salir":
romper
Imprima ("Bueno, ¿cómo estás? 0?".formato (nombre))
Imprima ("\ n ¿Cuál es tu nombre??")

Aquí está la salida repetida del código anterior que solo se detiene cuando el usuario ingresa a la palabra 'salir.'

Ejemplo 3:

Este ejemplo es un poco complicado pero fácil de entender y usar. Explicará cómo controlar la entrada y la salida de un programa utilizando tuberías y subprocesos en Python. Veamos primero el código.

importar subprocesos
Sys de importación
proc = subprocesos.Popen (["Python", "Callmyname.py "])
Mientras que Proc.returncode es ninguno:
procedencia.encuesta()
proc = subprocesos.Popen (["Python", "Callmyname.py "],
stdin = subproceso.Tubería, stdout = subproceso.TUBO)
procedencia.stdin.escribir ("alex \ n")
procedencia.stdin.escribir ("jhon \ n")
procedencia.stdin.cerca()
Mientras que Proc.returncode es ninguno:
procedencia.encuesta()
imprime ("Estoy de vuelta del programa infantil esto: \ n 0".formato (proc.stdout.leer()))

El subproceso.Popen () toma dos argumentos con nombre, uno es Stdin y el segundo es Stdout. Ambos argumentos son opcionales. Estos argumentos se utilizan para establecer la tubería, que el proceso infantil utiliza como su stdin y stdout. El subproceso.La tubería se pasa como una constante para que cualquiera de los subprocesos.Popen () o subproceso.Evite el usuario especifica que quiere el resultado. Un proceso infantil llamado CallMyname.Py se crea en el programa. Se pasan dos nombres al Callmyname.py antes de enviar la señal EOF a la entrada del niño. El proceso de la madre espera a que el proceso infantil termine antes de que lea la salida producida por el proceso infantil. La siguiente es la salida del código anterior.

Como puede ver, es sencillo usar tubería con el subproceso en Python. Si sigue los ejemplos dados anteriormente, puede aprender fácilmente el uso de tuberías con subprocesos en Python.

Conclusión:

Este artículo trata sobre cómo usar el subproceso de Python con tubería. Primero, introdujimos brevemente qué es una tubería para un subproceso en Python, y luego proporcionamos algunos ejemplos para explicar cómo usar la tubería con un subproceso en Python.