Come utilizzare il metodo del sottoprocesso Python check_output?

Come utilizzare il metodo del sottoprocesso Python check_output?
In questo articolo, daremo una breve introduzione ai sottoprocessi Python e discuteremo come utilizzare il check_output del sottoprocesso in Python. Cominciamo con sapendo cos'è un sub-process in Python. Il sottoprocesso è un modulo Python che viene utilizzato per eseguire nuovi codici creando nuovi processi. Consente all'utente di creare una nuova applicazione all'interno del programma Python attualmente in esecuzione. Quando l'utente desidera eseguire un programma esterno da un programma C o C ++ o da qualsiasi programma esterno da un repository Git, il sottoprocesso di Python può unire tali programmi. Inoltre, l'utente può anche ottenere input, output, codici di uscita o tubi di errore utilizzando il sottoprocesso Python. Vengono passati due parametri nella chiamata di funzione; Il primo parametro si riferisce al programma che l'utente desidera inizializzare e l'altro argomento si riferisce agli argomenti del file.

Esistono molti moduli di sottoprocesso in Python, ad esempio il sottoprocesso.run (), sottoprocesso.Popen (), sottoprocesso.Call (), sottoprocesso.check_call (), sottoprocess.check_output (), ecc. Qui illumineremo qual è il sottoprocesso.check_output (), qual è la sua funzione e come viene utilizzata in un programma Python.

La sintassi del sottoprocesso.check_output ()

Ogni programma Python ha canali standard per il processo o il sottoprocesso. Questi canali vengono avviati da Call () e vincolati all'ingresso e all'output del programma principale. In altre parole, il comando dell'output del programma chiamante non può essere catturato. Quindi, il modulo sottoprocesso check_output () in Python viene utilizzato per catturare l'output del programma di chiamata per la successiva elaborazione. La sintassi del sottoprocesso.check_output () è il seguente:

sottoprocesso.check_output (args, *, stdin = nessuno, stderr = nessuno, shell = false, universal_newlines = false)

L'argomento "args" del sottoprocesso.check_output si riferisce al comando che deve essere eseguito. Più comandi possono essere passati all'argomento "Args" come stringa; Tuttavia, devono essere separati da un punto e virgola;.'L'argomento stdin si riferisce al valore del flusso di input standard che deve essere superato un tubo. L'argomento stdout si riferisce al valore dell'output generato dal flusso di output standard. L'argomento Stderr si riferisce al valore dell'errore generato dal flusso di errore standard.

L'argomento Shell si riferisce al parametro booleano, che viene eseguito attraverso un nuovo ambiente di shell solo quando è vero. L'ultimo argomento, Universal_Newlines è un altro parametro booleano. Se l'argomento Universal_NewLines è vero, il file che contiene STDOUT e STDERR si aprirà in modalità Newline Universal. L'output o il ritorno del sottoprocesso.check_output () è il codice del comando.

Ecco un esempio per farti capire come il modulo check_output () cattura l'output del programma di chiamata.

Esempio 1:

Questo semplice esempio produrrà il codice di output del comando.

Sottoprocesso di importazione
Calling_output = sottoprocess.check_output (['ls', '-l'])
Stampa (Calling_Output)

Ecco l'output del dato esempio:

Esempio 2:

Questo esempio produrrà l'output del programma di chiamata.

Sottoprocesso di importazione
Stampa (sottoprocesso.check_output (["echo", "ABC"])

Ecco l'output del codice sopra:

Esempio 3:

Questo esempio dimostrerà come i programmi esterni di qualsiasi linguaggio di programmazione come C, C ++, Java, ecc., sono incorporati in un programma Python utilizzando il sottoprocesso in Python e come Check_output () eseguirà l'output di tali programmi esterni.

Questo è un programma C:

int main ()

printf ("print hello_world dal linguaggio di programmazione C");
restituzione 0;

Di seguito è riportato il programma C ++

#includere
Utilizzo dello spazio dei nomi std;
int main ()

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

Questo è il programma Java

Classe Helloworld

pubblico
statico void main (string args [])

Sistema.fuori.print ("print hello_world dal linguaggio di programmazione Java");

Ecco il programma Python che esegue i programmi di cui sopra utilizzando il sottoprocesso in Python

Sottoprocesso di importazione
Import OS
def exec ():
A = sottoprocesso.Check_Call ("GCC Hello_World.c -o out1;./out1 ", shell = true)
print (", output", a)
def execpp ():
Dati, temp = OS.tubo()
sistema operativo.scrivere (temp, bytes ("5 10 \ n", "UTF-8"));
sistema operativo.Close (Temp)
S = sottoprocesso.check_output ("G ++ Helloworld.cpp -o out2;./out2 ", stdin = data, shell = true)
Stampa (s.decode ("UTF-8"))
def exejava ():
S = sottoprocesso.check_output ("Javac Helloworld.Java; Java Helloworld ", shell = true)
Stampa (s.decode ("UTF-8"))
Se __Name __ == "__ Main__":
Exec ()
Execpp ()
exejava ()

Ecco l'output del programma sopra:

Nota: Anche se il modulo di sottoprocesso in Python è indipendente da OS, questi comandi devono preferibilmente essere eseguiti nell'ambiente Linux. Inoltre, la shell = true può diventare un pericolo per la sicurezza se viene combinato un input non attendibile, come definito nella documentazione di Python.

Conclusione:

Questo articolo parla del sottoprocesso.check_output () modulo del sottoprocesso in Python. Qui abbiamo una breve discussione sui sottoprocessi in Python e poi spieghiamo l'uso del sottoprocesso.check_output (). Facciamo un rapido riepilogo dell'articolo. Il sottoprocesso in Python crea un nuovo programma per eseguire un nuovo codice in esso. Consente all'utente di creare una nuova applicazione all'interno del programma Python attualmente in esecuzione. Esistono molti moduli di sottoprogrammi in Python e alcuni di essi sono sottoprocessi.Call (), sottoprocesso.Popen (), sottoprocesso.check_call (), sottoprocess.check_output ().

Il sottoprocesso.check_output () viene utilizzato per ottenere l'output del programma di chiamata in Python. Ha 5 argomenti; Args, Stdin, Stderr, Shell, Universal_Newlines. L'argomento Args contiene i comandi che devono essere superati come una stringa. STDIN, STDOUT e STDERR forniscono rispettivamente il valore di input, output e errore. Le linee di shell e universal_ sono i parametri booleani che eseguono i comandi solo quando il valore dell'argomento è vero. Il codice di ritorno del comando è dato come output del sottoprocesso.funzione check_ouput (). Una stringa di byte viene restituita come output se il codice è zero; Altrimenti, chiamatoprocesserror viene sollevato.