Cómo usar el método de subprocesos Python check_output?

Cómo usar el método de subprocesos Python check_output?
En este artículo, daremos una breve introducción de los subprocesos de Python y discutiremos cómo usar check_output de subprocesos en Python. Comencemos con saber qué es un subproceso en Python. El subprocesos es un módulo Python que se utiliza para ejecutar nuevos códigos creando nuevos procesos. Permite al usuario crear una nueva aplicación dentro del programa Python que ejecuta actualmente. Cuando el usuario desea ejecutar un programa externo desde un programa C o C ++ o cualquier programa externo desde un repositorio de Git, el subproceso de Python puede fusionar esos programas. Además, el usuario también puede obtener la entrada, los códigos de salida, la salida o las tuberías de error utilizando el subproceso de Python. Se pasan dos parámetros en la llamada de función; El primer parámetro se refiere al programa que el usuario desea inicializar, y el otro argumento se refiere a los argumentos del archivo.

Hay muchos módulos de subprocesos en Python, por ejemplo, subproceso.run (), subproceso.Popen (), subproceso.llamar (), subproceso.check_call (), subproceso.check_output (), etc. Aquí vamos a iluminar cuál es el subproceso.check_output (), cuál es su función y cómo se usa en un programa de Python.

La sintaxis del subproceso.check_output ()

Cada programa de Python tiene canales estándar para el proceso o subproceso. Estos canales se inician mediante la llamada () y se unen a la entrada y salida del programa principal. En otras palabras, el comando de la salida del programa de llamadas no se puede capturar. Por lo tanto, el módulo de subprocesos check_output () en Python se utiliza para capturar la salida del programa de llamadas para su posterior procesamiento. La sintaxis del subproceso.check_output () es el siguiente:

subproceso.check_output (args, *, stdin = none, stderr = none, shell = false, universal_newlines = falso)

El argumento de los 'args' del subproceso.check_output se refiere al comando que se ejecutará. Se pueden pasar múltiples comandos al argumento 'args' como una cadena; Sin embargo, deben estar separados por un punto y coma ';.'El argumento de Stdin se refiere al valor de la secuencia de entrada estándar que debe pasar una tubería. El argumento stDout se refiere al valor de la salida generada a partir de la secuencia de salida estándar. El argumento STDERR se refiere al valor de error generado a partir de la secuencia de errores estándar.

El argumento de shell se refiere al parámetro booleano, que se ejecuta a través de un nuevo entorno de shell solo cuando es verdadero. El último argumento, universal_newlines es otro parámetro booleano. Si el argumento universal_newlines es verdadero, entonces el archivo que contiene stdout y stderr se abrirá en el modo universal newline. La salida o el retorno del subproceso.check_output () es el código del comando.

Aquí hay un ejemplo para que comprenda cómo el módulo check_output () captura la salida del programa de llamadas.

Ejemplo 1:

Este simple ejemplo producirá el código de salida del comando.

importar subprocesos
callar_output = subprocesos.check_output (['ls', '-l'])
imprimir (callar_output)

Aquí está el resultado del ejemplo dado:

Ejemplo 2:

Este ejemplo producirá la salida del programa de llamadas.

importar subprocesos
imprimir (subprocesos.check_output (["echo", "ABC"]))

Aquí está la salida del código anterior:

Ejemplo 3:

Este ejemplo demostrará cómo los programas externos de cualquier lenguaje de programación como C, C ++, Java, etc., se incorporan en un programa de Python utilizando un subproceso en Python y cómo check_output () ejecutará la salida de esos programas externos.

Este es un programa C:

int main ()

printf ("Imprimir hello_world desde el lenguaje de programación c");
regresar 0;

A continuación se muestra el programa C ++

#incluir
usando el espacio de nombres STD;
int main ()

int a, b;
cin >> a;
Cin >> B;
cout << "Print Hello_World from C++ programing language and the Values are:" << a << " " << b;
regresar 0;

Este es el programa Java

clase Helloworld

público
static void main (string args [])

Sistema.afuera.imprimir ("Imprimir hello_world desde el lenguaje de programación Java");

Aquí está el programa Python que ejecuta los programas anteriores utilizando un subproceso en Python

importar subprocesos
importar sistema operativo
Def Exec ()::
a = subprocesamiento.check_call ("GCC Hello_world.c -o out1;./out1 ", shell = true)
imprimir (", salida", a)
Def Execpp ()::
datos, temp = OS.tubo()
sistema operativo.escribir (temp, bytes ("5 10 \ n", "utf-8"));
sistema operativo.Cerrar (temperatura)
S = subprocesos.check_output ("g ++ helloworld.cpp -o out2;./out2 ", stdin = data, shell = true)
huellas dactilares.Decode ("UTF-8"))
Def Exejava ():
S = subprocesos.check_output ("Javac Helloworld.java; java helloworld ", shell = true)
huellas dactilares.Decode ("UTF-8"))
Si __name __ == "__ Main__":
exec ()
execpp ()
Exejava ()

Aquí está el resultado del programa anterior:

Nota: Aunque el módulo de subprocesos en Python es independiente del sistema operativo, estos comandos preferiblemente deben ejecutarse en el entorno de Linux. Además, el shell = verdadero puede convertirse en un peligro de seguridad si se combina una entrada no confiable, como se define en la documentación de Python.

Conclusión:

Este artículo trata sobre el subproceso.módulo check_output () del subproceso en Python. Aquí tenemos una breve discusión de subprocesos en Python y luego explicamos el uso del subproceso.check_output (). Tengamos un resumen rápido del artículo. El subproceso en Python crea un nuevo programa para ejecutar un nuevo código en él. Permite al usuario crear una nueva aplicación dentro del programa Python que ejecuta actualmente. Hay muchos módulos de subprogramas en Python, y algunos de ellos son subprocesos.llamar (), subproceso.Popen (), subproceso.check_call (), subproceso.check_output ().

El subproceso.check_output () se usa para obtener la salida del programa de llamadas en Python. Tiene 5 argumentos; Args, Stdin, Stderr, Shell, Universal_newlines. El argumento de los args contiene los comandos que se pasarán como una cadena. El stdin, stdout y stderr proporcionan la entrada, la salida y el valor de error, respectivamente, desde la secuencia estándar. Shell y Universal_newlines son los parámetros booleanos que solo ejecutan los comandos cuando el valor del argumento es verdadero. El código de retorno del comando se da como la salida del subproceso.función check_ouput (). Una cadena de byte se devuelve como salida si el código es cero; más, se está criando el propenteoSerror.