Comment obtenir le code de retour du processus dans l'exécution du sous-processus Python?

Comment obtenir le code de retour du processus dans l'exécution du sous-processus Python?

En tant que développeur Python, vous voudrez peut-être obtenir le code de retour d'un processus pour plusieurs raisons. Par exemple, lors de la gestion des erreurs, il est important de savoir si un sous-processus a été exécuté avec succès ou déclenché une erreur. De plus, le code retourné peut également être utilisé pour suivre l'exécution du programme ou du sous-processus.

Ce blog couvrira:

  • Méthode 1: Obtenir le code de retour du processus dans Python à l'aide de l'attribut «returncode»
  • Méthode 2: Obtenir le code de retour du processus dans Python en utilisant la méthode «communiquer ()»
  • Méthode 3: Obtenir le code de retour du processus dans Python à l'aide de la méthode «check_output ()»

Méthode 1: Obtenir le code de retour du processus dans Python à l'aide de l'attribut «returncode»

Dans Python, l'attribut «ReturnCode» appartient au module «Sous-processus». Cet attribut contient une valeur entière qui fait référence au statut de sortie d'un sous-processus lors de l'exécution. Plus précisément, la valeur «0» signifie l'exécution réussie du sous-processus, tandis qu'une valeur non nulle indique une condition anormale ou une erreur.

Syntaxe

processus.Code de retour

Ici, "processus»Représente la fonction pertinente de l'objet de processus du«sous-processus”Module, et le"Code de retour»Est sa valeur de code de retour correspondante.

Exemple

Pour utiliser le «Code de retour”Attribut pour récupérer le code de retour dans l'exécution du sous-processus Python, consultez le code fourni:

à partir de l'exécution d'importation de sous-processus
process = run (['echo', 'utilisateur de Linuxhint!'])
Imprimer ('Retour Code:', Processus.Code de retour)

Selon le code donné:

  • Tout d'abord, importez le «courir()«Fonction du«sous-processus»Module.
  • Le "courir()«La fonction exécute le«écho”Commande et attend qu'elle se termine, renvoyant finalement l'objet de processus.
  • Enfin, le «imprimer()»La fonction affiche le«Code de retour”Valeur d'attribut de l'objet récupéré:

Ici, "0«A été retourné, ce qui indique que le sous-processus spécifié a été exécuté avec succès.

Méthode 2: Obtenir le code de retour du processus dans Python en utilisant la méthode «communiquer ()»

Le "communiquer()«La méthode de Python permet l'interaction avec un processus en y passant d'entrée. Cette méthode produit un tuple qui comprend «std_out»(Sortie standard) au 0ème index et«stderr_data»(Stream d'erreur ou messages) au 1er index. Les valeurs de ces variables associées seront retournées comme «Aucun«Si la sortie standard ou les messages d'erreur n'ont pas été capturés.

Syntaxe

processus.communiquer (entrée = aucun, tempsout = aucun) [n]

Dans la syntaxe donnée, "saisir«Est une chaîne d'octets transmise à l'entrée standard du processus,«temps libre«Est le nombre de secondes pour attendre la fin du processus, et«n"Fait référence à l'index, où"0”Sorte la sortie standard et«1»Indique les flux d'erreur.

Exemple

Maintenant, exécutez le code Python suivant pour obtenir le code de retour à l'aide de la méthode communicate ():

sous-processus d'importation
processus = sous-processus.POPEN (["Echo", "utilisateur de Linuxhint!"], stdout = sous-processus.TUYAU)
imprimer (traiter.communiquer () [0])

Ici:

  • Premièrement, importez le «sous-processus»Module.
  • C'est "POPEN ()»La méthode génère un objet POPEN qui représente le sous-processus nouvellement créé et le renvoie.
  • Le premier argument du POPEN () fait référence à la commande qui doit être exécutée et à la valeur du «stdout"Est défini comme le"sous-processus.TUYAU”Pour capturer la sortie de sous-processus.
  • Finalement, le "processus.communiquer () [0]»Renvoie la sortie standard du sous-processus:

Dans notre cas, le «Utilisateur de B'linuxHint!\ n '”A été affiché comme le code retourné.

Méthode 3: Obtenir le code de retour du processus dans Python à l'aide de la méthode «check_output ()»

Le "check_output ()»La méthode Python exécute une commande en tant que sous-processus et enregistre sa sortie. Cette méthode présente la sortie comme objet d'un octet.

Syntaxe

sous-processus.check_output (args, *, stdin = aucun, stderr = non, shell = false, universal_newlines = false, timeout = non, coding = non, errors = non

Ici, "args»Signifie les commandes qui doivent être exécutées, tandis que tous les autres paramètres sont facultatifs.

Exemple

Nous avons passé le «écho”Commande et la chaîne respective du check_output () comme argument. En conséquence, cette méthode renverra la sortie capturée:

processus = sous-processus.check_output (["echo", "Bonjour à partir de Linuxhint!"])
Imprimer (processus)

Sortir

Conseil bonus: décoder la sortie standard

Python propose également l'installation pour décoder la sortie standard retournée avec le «décoder()" méthode. Dans ce code, nous décoderons la chaîne d'octets en utilisant le «UTF-8»Schéma d'encodage:

imprimer (traiter.Decode ("UTF-8"))

Sortir

Il s'agissait d'obtenir le code de retour en python.

Conclusion

Pour obtenir le code de retour d'un processus dans l'exécution du sous-processus Python, utilisez le «attribut de returncode "," communiquer () ", ou" check_output ()" méthode. Le "Code de retour"Renvoie l'attribut"0«En cas d'exécution réussie, et le«communiquer () [0]»Sorties la sortie standard stockée à l'indice zéro. De plus, le «check_output ()»La méthode fonctionne également la même chose. Ce blog a couvert plusieurs méthodes pour obtenir du code de retour dans Python.