Como obter o código de retorno do processo na execução do subprocesso Python?

Como obter o código de retorno do processo na execução do subprocesso Python?

Como desenvolvedor Python, você pode querer obter o código de retorno de um processo por vários motivos. Por exemplo, ao lidar com erros, é importante saber se um subprocesso foi executado com sucesso ou desencadeado qualquer erro. Além disso, o código retornado também pode ser utilizado para rastrear o programa ou a execução do subprocesso.

Este blog cobrirá:

  • Método 1: Obtendo o código de retorno do processo no python usando o atributo "ReturnCode"
  • Método 2: Obtendo o código de retorno do processo no Python usando o método "Communicate ()"
  • Método 3: Obtendo o código de retorno do processo no Python usando o método "check_output ()"

Método 1: Obtendo o código de retorno do processo no python usando o atributo "ReturnCode"

Em Python, o atributo "ReturnCode" pertence ao módulo "subprocesso". Este atributo contém um valor inteiro que se refere ao status de saída de um subprocesso após a execução. Mais especificamente, o valor "0" significa a execução bem-sucedida do subprocesso, enquanto um valor diferente de zero indica uma condição anormal ou um erro.

Sintaxe

processo.Código de retorno

Aqui, "processo”Representa a função relevante do objeto de processo do“subprocesso”Módulo e o“Código de retorno”É o seu valor correspondente do código de retorno.

Exemplo

Para utilizar o “Código de retorno”Atributo para buscar o código de retorno na execução do subprocesso Python, consulte o código fornecido:

Da execução de importação de subprocessos
Process = Run (['Echo', 'Usuário Linuxhint!'])
print ('Código de retorno:', processo.Código de retorno)

De acordo com o código fornecido:

  • Primeiro de tudo, importe o “correr()"Função do"subprocesso”Módulo.
  • O "correr()”A função executa a“eco”Comando e aguarda a conclusão, devolvendo o objeto de processo.
  • Por fim, o “imprimir()”Função exibe a“Código de retorno”Valor do atributo do objeto recuperado:

Aqui, "0”Foi devolvido, o que indica que o subprocesso especificado foi executado com sucesso.

Método 2: Obtendo o código de retorno do processo no Python usando o método "Communicate ()"

O "comunicar()”O método em Python permite a interação com um processo passando a entrada para ele. Este método gera uma tupla que compreende “std_out”(Saída padrão) no 0º índice e“stderr_data”(Fluxo de erros ou mensagens) no 1º índice. Os valores dessas variáveis ​​associadas serão retornados como “Nenhum”Se a saída padrão ou as mensagens de erro não foram capturadas.

Sintaxe

processo.Comunique (Input = Nenhum, Timeout = Nenhum) [N]

Na sintaxe dada, “entrada”É uma sequência de bytes passada para a entrada padrão do processo,“tempo esgotado”É o número de segundos para aguardar a conclusão do processo e“n"Refere -se ao indexado, onde"0”Emite a saída padrão e“1”Indica os fluxos de erro.

Exemplo

Agora, execute o seguinte código Python para obter o código de retorno usando o método Communicate ():

Subprocess de importação
processo = subprocesso.Popen (["Echo", "Usuário Linuxhint!"], stdout = subprocesso.CANO)
Imprimir (processo.Comunicate () [0])

Aqui:

  • Em primeiro lugar, importe o “subprocesso”Módulo.
  • Isso é "Popen ()”O método gera um objeto Popen que representa o subprocesso recém -criado e o retorna.
  • O primeiro argumento do Popen () refere -se ao comando que precisa ser executado e o valor do “stdout”É definido como o“subprocesso.CANO”Para capturar a saída do subprocesso.
  • Finalmente, o "processo.Comunicate () [0]”Retorna a saída padrão do subprocesso:

No nosso caso, o “Usuário de B'Linuxhint!\ n '”Foi exibido como o código retornado.

Método 3: Obtendo o código de retorno do processo no Python usando o método "check_output ()"

O "check_output ()”O método Python executa um comando como um subprocesso e salva sua saída. Este método apresenta a saída como objeto de um byte.

Sintaxe

subprocesso.check_output (args, *, stdin = nenhum, stderr = nenhum, shell = false, universal_newlines = false, timeout = nenhum, codificação = nenhum, erros = nenhum)

Aqui, "args”Significa os comandos que precisam ser executados, enquanto todos os outros parâmetros são opcionais.

Exemplo

Nós passamos o “eco”Comando e a respectiva string para o check_output () como um argumento. Resultado, esse método retornará a saída capturada:

processo = subprocesso.check_output (["echo", "Olá do Linuxhint!"])
Imprimir (processo)

Saída

Dica de bônus: decodifique a saída padrão

O Python também oferece a instalação para decodificar a saída padrão retornada com o “decodificar()”Método. Neste código, decodificaremos a sequência de bytes utilizando o “UTF-8”Esquema de codificação:

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

Saída

Isso era tudo sobre obter o código de retorno em Python.

Conclusão

Para obter o código de retorno de um processo na execução do subprocesso Python, use o “Atributo ReturnCode "," Communicate () ", ou o" check_output ()”Método. O "Código de retorno”Atributo retorna“0”Em caso de execução bem -sucedida e“Comunicate () [0]”Emite a saída padrão armazenada no índice zero. Além disso, o “check_output ()”O método também funciona da mesma forma. Este blog abordou vários métodos para obter o código de retorno no Python.