Come ottenere il codice di ritorno dal processo nella esecuzione del sottoprocesso di Python?

Come ottenere il codice di ritorno dal processo nella esecuzione del sottoprocesso di Python?

Come sviluppatore di Python, potresti voler ottenere il codice di ritorno di un processo per più motivi. Ad esempio, durante la gestione degli errori, è importante sapere se un sottoprocesso è stato eseguito o attivato correttamente. Inoltre, il codice restituito può essere utilizzato anche per il monitoraggio del programma o dell'esecuzione del sottoprocesso.

Questo blog coprirà:

  • Metodo 1: ottenere il codice di restituzione dal processo in Python usando l'attributo "Distermcode"
  • Metodo 2: ottenere il codice di ritorno dal processo in Python usando il metodo "Communicate ()"
  • Metodo 3: ottenere il codice di ritorno dal processo in Python usando il metodo "Check_output ()"

Metodo 1: ottenere il codice di restituzione dal processo in Python usando l'attributo "Distermcode"

In Python, l'attributo "DETROTCODE" appartiene al modulo "sottoprocesso". Questo attributo contiene un valore intero che si riferisce allo stato di uscita di un sottoprocesso dopo l'esecuzione. Più specificamente, il valore "0" indica la riuscita esecuzione del sottoprocesso, mentre un valore diverso da zero indica una condizione anormale o un errore.

Sintassi

processi.DETROCODE

Qui, "processi"Rappresenta la funzione pertinente dell'oggetto del processo di"sottoprocesso"Modulo e il"DETROCODE"È il valore del codice di ritorno corrispondente.

Esempio

Per utilizzare il "DETROCODE"Attributo per recuperare il codice di ritorno nell'esecuzione del sottoprocessa di Python, controlla il codice fornito:

Dall'esecuzione dell'importazione del sottoprocesso
Process = run (['echo', 'LinuxHint utente!'])
print ('Codice di ritorno:', processo.DETROCODE)

Secondo il codice dato:

  • Prima di tutto, importa il "correre()"Funzione di"sottoprocesso"Modulo.
  • IL "correre()"La funzione esegue il"eco"Comanda e attende che si completi, alla fine restituendo l'oggetto di processo.
  • Infine, il "stampa()"La funzione visualizza il"DETROCODE"Valore attributo dell'oggetto recuperato:

Qui, "0"È stato restituito, il che indica che il sottoprocesso specificato è stato eseguito correttamente.

Metodo 2: ottenere il codice di ritorno dal processo in Python usando il metodo "Communicate ()"

IL "comunicare()"Il metodo in Python consente l'interazione con un processo passando input ad esso. Questo metodo produce una tupla che comprende "std_out"(Output standard) al 0 ° indice e"stderr_data"(Stream di errore o messaggi) al primo indice. I valori di queste variabili associati verranno restituiti come "Nessuno"Se l'output standard o i messaggi di errore non sono stati acquisiti.

Sintassi

processi.comunicare (input = none, timeout = nessuno) [n]

Nella sintassi data, "ingresso"È una stringa di byte passata all'input standard del processo,"tempo scaduto"È il numero di secondi per attendere il completamento del processo e"N"Si riferisce all'indice, dove"0"Output l'output standard e"1"Indica i flussi di errore.

Esempio

Ora, esegui il seguente codice Python per ottenere il codice di ritorno utilizzando il metodo comunicativo ():

Sottoprocesso di importazione
Process = sottoprocesso.Popen (["eco", utente Linuxhint!"], stdout = sottoprocess.TUBO)
Stampa (processo.comunicare () [0])

Qui:

  • In primo luogo, importa il "sottoprocesso"Modulo.
  • Suo "Popen ()"Il metodo genera un oggetto Popen che rappresenta il sottoprocesso appena creato e lo restituisce.
  • Il primo argomento di Popen () si riferisce al comando che deve essere eseguito e al valore del "stdout"È impostato come"sottoprocesso.TUBO"Per catturare l'output del sottoprocesso.
  • Finalmente il "processi.comunicare () [0]"Restituisce l'output standard del sottoprocesso:

Nel nostro caso, il "Utente B'Linuxhint!\N'"È stato visualizzato come codice restituito.

Metodo 3: ottenere il codice di ritorno dal processo in Python usando il metodo "Check_output ()"

IL "check_output ()"Il metodo Python esegue un comando come sottoprocesso e salva il suo output. Questo metodo presenta l'output come oggetto di un byte.

Sintassi

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

Qui, "args"Significa i comandi che devono essere eseguiti, mentre tutti gli altri parametri sono opzionali.

Esempio

Abbiamo superato il "eco"Comando e la rispettiva stringa al check_output () come argomento. Di conseguenza, questo metodo restituirà l'output acquisito:

Process = sottoprocesso.check_output (["echo", "ciao da linuxhint!"])
Stampa (processo)

Produzione

Suggerimento bonus: decodifica l'output standard

Python offre anche la struttura per decodificare l'output standard restituito con "decodificare()" metodo. In questo codice, decodificheremo la stringa di byte utilizzando il "UTF-8"Schema di codifica:

Stampa (processo.decode ("UTF-8"))

Produzione

Si trattava di ottenere il codice di ritorno in Python.

Conclusione

Per ottenere il codice di ritorno da un processo nell'esecuzione del sottoprocesso di Python, usa il “Attributo di returncode "," comunica () "o" check_output ()" metodo. IL "DETROCODE"Attributo restituisce"0"In caso di esecuzione riuscita e"comunicare () [0]"Output l'output standard memorizzato all'indice zero. Inoltre, il "check_output ()"Il metodo funziona anche lo stesso. Questo blog ha coperto più metodi per ottenere il codice di ritorno in Python.