Cómo obtener el código de retorno del proceso en la ejecución del subproceso de Python?

Cómo obtener el código de retorno del proceso en la ejecución del subproceso de Python?

Como desarrollador de Python, es posible que desee obtener el código de devolución de un proceso por múltiples razones. Por ejemplo, al manipular errores, es importante saber si un subproceso fue ejecutado o activado con éxito cualquier error. Además, el código devuelto también se puede utilizar para rastrear el programa o la ejecución de subprocesos.

Este blog cubrirá:

  • Método 1: Obtener el código de retorno del proceso en Python utilizando el atributo "returncode"
  • Método 2: Obtener el código de retorno del proceso en Python usando el método "Communicate ()"
  • Método 3: Obtener código de retorno del proceso en Python usando el método "check_output ()"

Método 1: Obtener el código de retorno del proceso en Python utilizando el atributo "returncode"

En Python, el atributo "returncode" pertenece al módulo "subprocesos". Este atributo contiene un valor entero que se refiere al estado de salida de un subproceso tras la ejecución. Más específicamente, el valor "0" significa la ejecución exitosa del subproceso, mientras que un valor no cero indica una condición anormal o un error.

Sintaxis

proceso.código de retorno

Aquí, "proceso"Representa la función relevante del objeto de proceso del"subproceso"Módulo, y el"código de retorno"Es su valor de código de retorno correspondiente.

Ejemplo

Para utilizar el "código de retorno"Atributo para obtener el código de retorno en la ejecución del subprocesamiento de Python, consulte el código proporcionado:

desde la ejecución de importación de subprocesos
Process = run (['echo', usuario de Linuxhint!'])
Imprimir ('Código de retorno:', Proceso.código de retorno)

Según el código dado:

  • En primer lugar, importe el "correr()"Función del"subproceso"Módulo.
  • El "correr()"La función ejecuta el"eco"Comando y espera a que se complete, devolviendo el objeto de proceso.
  • Por último, el "imprimir()"La función muestra la"código de retorno"Valor de atributo del objeto recuperado:

Aquí, "0Se ha devuelto, lo que indica que el subproceso especificado se ha ejecutado con éxito.

Método 2: Obtener el código de retorno del proceso en Python usando el método "Communicate ()"

El "comunicar()El método en Python permite la interacción con un proceso al pasarle la entrada. Este método genera una tupla que comprende "std_out"(Salida estándar) en el índice 0 y"stderr_data”(Transmisión de error o mensajes) en el primer índice. Los valores de estas variables asociadas se devolverán como "Ninguno"Si la salida estándar o los mensajes de error no se han capturado.

Sintaxis

proceso.comunicar (input = none, timeout = none) [n]

En la sintaxis dada, "aporte"Es una cadena de byte pasada a la entrada estándar del proceso", ",se acabó el tiempo"Es el número de segundos para esperar la finalización del proceso, y"norte"Se refiere al índice, donde"0"Emite la salida estándar y"1"Indica las secuencias de error.

Ejemplo

Ahora, ejecute el siguiente código de Python para obtener el código de retorno utilizando el método Communicate ():

importar subprocesos
proceso = subprocesos.Popen (["echo", usuario de Linuxhint!"], stdout = subprocesos.TUBO)
Imprimir (proceso.comunicar () [0])

Aquí:

  • En primer lugar, importe el "subproceso"Módulo.
  • Es "Popen ()El método "genera un objeto popen que representa el subproceso recién creado y lo devuelve.
  • El primer argumento del popen () se refiere al comando que debe ejecutarse, y el valor del "stdout"Está configurado como el"subproceso.TUBO"Para capturar la salida de subprocesos.
  • Finalmente, el "proceso.comunicar () [0]"Devuelve la salida estándar del subproceso:

En nuestro caso, el "Usuario de B'Linuxhint!\norte'"Se ha mostrado como el código devuelto.

Método 3: Obtener código de retorno del proceso en Python usando el método "check_output ()"

El "check_output ()El método Python ejecuta un comando como un subproceso y guarda su salida. Este método presenta la salida como objeto de byte.

Sintaxis

subproceso.check_output (args, *, stdin = none, stderr = none, shell = false, universal_newlines = false, timeout = none, coding = none, errores = none)

Aquí, "argumentos"Significa los comandos que deben ejecutarse, mientras que todos los demás parámetros son opcionales.

Ejemplo

Hemos pasado el "ecoComando "y la cadena respectiva a check_output () como argumento. Como resultado, este método devolverá la salida capturada:

proceso = subprocesos.check_output (["echo", "Hola desde Linuxhint!"])
Imprimir (proceso)

Producción

Consejo de bonificación: decodifique la salida estándar

Python también ofrece la instalación para decodificar la salida estándar devuelta con el "descodificar()" método. En este código, decodificaremos la cadena de byte utilizando el "UTF-8"Esquema de codificación:

Imprimir (proceso.Decode ("UTF-8"))

Producción

Eso se trataba de obtener el código de regreso en Python.

Conclusión

Para obtener el código de retorno de un proceso en la ejecución del subprocesamiento de Python, use el "atributo de returncode "," comunicar () "o el" check_output ()" método. El "código de retorno"Atributo Devuelve"0"En caso de ejecución exitosa, y el"comunicar () [0]"Etuenta la salida estándar almacenada en el índice cero. Además, el "check_output ()El método también funciona igual. Este blog cubrió múltiples métodos para obtener el código de retorno en Python.