Comment utiliser la méthode Python Sub-Process Check_output?

Comment utiliser la méthode Python Sub-Process Check_output?
Dans cet article, nous ferons une brève introduction des sous-processus Python et discuterons de la façon d'utiliser le sous-processus Check_output à Python. Commençons par savoir ce qu'est un sous-processus à Python. Le sous-processus est un module Python qui est utilisé pour exécuter de nouveaux codes en créant de nouveaux processus. Il permet à l'utilisateur de créer une nouvelle application dans le programme Python en cours d'exécution. Lorsque l'utilisateur souhaite exécuter un programme externe à partir d'un programme C ou C ++ ou tout programme externe d'un référentiel GIT, le sous-processus Python peut fusionner ces programmes. De plus, l'utilisateur peut également obtenir une entrée, une sortie, des codes de sortie ou des tuyaux d'erreur à l'aide du sous-processus Python. Deux paramètres de l'appel de fonction sont passés; Le premier paramètre fait référence au programme que l'utilisateur souhaite initialiser, et l'autre argument fait référence aux arguments de fichier.

Il existe de nombreux modules de sous-processus dans Python, par exemple, sous-processus.run (), sous-processus.POPEN (), sous-processus.call (), sous-processus.check_call (), sous-processus.check_output (), etc. Ici, nous allons éclairer quel est le sous-processus.check_output (), quelle est sa fonction et comment elle est utilisée dans un programme Python.

La syntaxe de la sous-processus.check_output ()

Chaque programme Python a des canaux standard pour le processus ou le sous-processus. Ces canaux sont lancés par appel () et liés à l'entrée et à la sortie du programme parent. En d'autres termes, la commande de la sortie du programme d'appel ne peut pas être capturée. Par conséquent, le module de sous-processus Check_Output () dans Python est utilisé pour capturer la sortie du programme d'appel pour un traitement ultérieur. La syntaxe de la sous-processus.check_output () est le suivant:

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

L'argument des «args» du sous-processus.check_output fait référence à la commande qui doit être exécutée. Plusieurs commandes peuvent être transmises à l'argument «Args» en tant que chaîne; Cependant, ils doivent être séparés par un point-virgule »;.'L'argument STDIN fait référence à la valeur du flux d'entrée standard qui doit être transmis un tuyau. L'argument STDOUT fait référence à la valeur de la sortie générée à partir du flux de sortie standard. L'argument Stderr fait référence à la valeur de l'erreur générée à partir du flux d'erreur standard.

L'argument Shell fait référence au paramètre booléen, qui est exécuté via un nouvel environnement de coquille uniquement lorsqu'il est vrai. Le dernier argument, Universal_Newlines est un autre paramètre booléen. Si l'argument Universal_Newlines est vrai, alors le fichier qui contient Stdout et Stderr s'ouvrira en mode Newline Universal. La sortie ou le retour du sous-processus.check_output () est le code de la commande.

Voici un exemple pour vous faire comprendre comment le module Check_Output () capture la sortie du programme d'appel.

Exemple 1:

Cet exemple simple produira le code de sortie de la commande.

sous-processus d'importation
CALL_OUTPUT = SUB-processus.check_output (['ls', '- l'])
imprimer (call_output)

Voici la sortie de l'exemple donné:

Exemple 2:

Cet exemple produira la sortie du programme d'appel.

sous-processus d'importation
imprimer (sous-processus.check_output (["echo", "ABC"]))

Voici la sortie du code ci-dessus:

Exemple 3:

Cet exemple montrera comment les programmes externes de tout langage de programmation comme C, C ++, Java, etc., sont incorporés dans un programme Python en utilisant le sous-processus en python et comment Check_Output () exécutera la sortie de ces programmes externes.

Ceci est un programme C:

int main()

printf ("print hello_world from C Programing Language");
retour 0;

Vous trouverez ci-dessous le programme C ++

#inclure
Utilisation de Namespace Std;
int main()

int a, b;
cin >> a;
cin >> b;
couter << "Print Hello_World from C++ programing language and the Values are:" << a << " " << b;
retour 0;

Ceci est le programme Java

classe Helloworld

public
statique void main (String args [])

Système.dehors.print ("print hello_world à partir de la langue de programme java");

Voici le programme Python qui exécute les programmes ci-dessus en utilisant le sous-processus dans Python

sous-processus d'importation
Importer un système d'exploitation
Def exec ():
a = sous-processus.check_call ("gcc hello_world.C -o out1;./ out1 ", shell = true)
imprimer (", sortie", a)
def execpp ():
données, temp = os.tuyau()
OS.write (temp, octets ("5 10 \ n", "utf-8"));
OS.Close (Temp)
S = sous-processus.check_output ("g ++ helloworld.cpp -o out2;./ out2 ", stdin = données, shell = true)
imprimer (s.Decode ("UTF-8"))
def exejava ():
S = sous-processus.Check_output ("Javac Helloworld.java; java helloworld ", shell = true)
imprimer (s.Decode ("UTF-8"))
Si __name __ == "__ Main__":
exec ()
execpp ()
exejava ()

Voici la sortie du programme ci-dessus:

Note: Même si le module de sous-processus de Python est indépendant du système d'exploitation, ces commandes doivent de préférence être exécutées dans l'environnement Linux. De plus, le shell = True peut devenir un risque de sécurité si une entrée non fiable est combinée, comme défini dans la documentation Python.

Conclusion:

Cet article concerne le sous-processus.module check_output () du sous-processus en python. Ici, nous avons une brève discussion sur les sous-procédés à Python, puis expliquons l'utilisation du sous-processus.check_output (). Allons un récapitulatif rapide de l'article. Le sous-processus de Python crée un nouveau programme pour exécuter un nouveau code dedans. Il permet à l'utilisateur de créer une nouvelle application dans le programme Python en cours d'exécution. Il existe de nombreux modules de sous-programmes à Python, et certains d'entre eux sont des sous-processus.call (), sous-processus.POPEN (), sous-processus.check_call (), sous-processus.check_output ().

Le sous-processus.check_output () est utilisé pour obtenir la sortie du programme d'appel dans Python. Il a 5 arguments; Args, Stdin, Stderr, Shell, Universal_newlines. L'argument Args contient les commandes qui doivent être passées sous forme de chaîne. Le stdin, le stdout et le stderr fournissent respectivement la saisie, la sortie et la valeur d'erreur du flux standard. Les Shell et Universal_Newlines sont les paramètres booléens qui ne font que l'exécution des commandes lorsque la valeur de l'argument est vraie. Le code de retour de la commande est donné comme la sortie du sous-processus.Fonction Check_ouput (). Une chaîne d'octet est renvoyée sous forme de sortie si le code est zéro; Sinon, appeléprocesserror est élevé.