Jak uzyskać kod powrotu z procesu w wykonaniu podprocesów w Python?

Jak uzyskać kod powrotu z procesu w wykonaniu podprocesów w Python?

Jako programista Python możesz chcieć uzyskać kod powrotu procesu z wielu powodów. Na przykład, podczas obsługi błędów, ważne jest, aby wiedzieć, czy podproces został pomyślnie wykonany, czy wywołany jakikolwiek błąd. Ponadto zwracany kod można również wykorzystać do śledzenia programu lub podręcznego wykonania.

Ten blog obejmie:

  • Metoda 1: Uzyskiwanie kodu powrotu z procesu w Python za pomocą atrybutu „ReturnCode”
  • Metoda 2: Uzyskanie kodu powrotu z procesu w Python za pomocą metody „Communication ()”
  • Metoda 3: Uzyskanie kodu powrotu z procesu w Python za pomocą metody „Check_output ()”

Metoda 1: Uzyskiwanie kodu powrotu z procesu w Python za pomocą atrybutu „ReturnCode”

W Pythonie atrybut „ReturnCode” należy do modułu „podproces”. Ten atrybut zawiera wartość liczb całkowitą, która odnosi się do statusu wyjścia podprocesów po wykonaniu. Mówiąc dokładniej, wartość „0” oznacza pomyślne wykonanie podprocesów, podczas gdy wartość niezerowa wskazuje na nieprawidłowy warunek lub błąd.

Składnia

proces.kod powrotu

Tutaj, "proces”Reprezentuje odpowiedni obiekt procesu„ funkcja „podproces„Moduł i„ „kod powrotu”Jest odpowiednią wartością kodu zwracanego.

Przykład

Aby wykorzystać „kod powrotu”Atrybut do pobrania kodu powrotu w wykonaniu podprocesów w Python, sprawdź podany kod:

z podprocesowego biegu importowego
proces = uruchom ([„echo”, „użytkownik Linuxhint!'])
drukuj („kod powrotu:”, proces.kod powrotu)

Zgodnie z danym kodem:

  • Po pierwsze, zaimportuj „uruchomić()”Funkcja„podproces”Moduł.
  • „„uruchomić()”Funkcja działa„Echo„Polecenie i czeka na jego zakończenie, ostatecznie zwracając obiekt procesu.
  • Wreszcie „„wydrukować()”Funkcja wyświetla„kod powrotu„Wartość atrybutu odzyskanego obiektu:

Tutaj, "0”Został zwrócony, co wskazuje, że określony podproces został pomyślnie wykonany.

Metoda 2: Uzyskanie kodu powrotu z procesu w Python za pomocą metody „Communication ()”

„„komunikować się()„Metoda w Pythonie pozwala na interakcję z procesem, przekazując do niego dane wejściowe. Ta metoda wyświetla krotek, który obejmuje „std_out”(Standardowe wyjście) w indeksie 0. i„stderr_data”(Strumień błędów lub komunikaty) w pierwszym indeksie. Wartości tych powiązanych zmiennych zostaną zwrócone jako „Nic”Jeśli standardowe wyjście lub komunikaty o błędach nie zostały przechwycone.

Składnia

proces.komunikować się (input = brak, limit czasu = brak) [n]

W podanej składni „wejście”To ciąg bajtowy przekazany do standardowego wejścia procesu,„koniec czasu”To liczba sekund na czekanie na zakończenie procesu i„N„Odnosi się do indeksu, gdzie„0”Wydajnie standardowe wyjście i„1”Wskazuje strumienie błędów.

Przykład

Teraz wykonaj następujący kod Pythona, aby uzyskać kod powrotu za pomocą metody Communication ():

importować podproces
proces = podproces.Popen ([„echo”, „użytkownik Linuxhint!"], stdout = podproces.RURA)
Drukuj (proces.Communication () [0])

Tutaj:

  • Po pierwsze, zaimportuj „podproces”Moduł.
  • Jego "Popen ()„Metoda generuje obiekt Popen, który reprezentuje nowo utworzoną podproces i zwraca ją.
  • Pierwszy argument Popen () odnosi się do polecenia, które należy wykonać, oraz o wartości „Stdout”Jest ustawiony jako„podproces.RURA”W celu przechwytywania wyjścia podprocesowego.
  • Wreszcie „„proces.Communication () [0]”Zwraca standardowe wyjście podprocesów:

W naszym przypadku „Użytkownik B'linuxhint!\N'”Został wyświetlony jako zwrócony kod.

Metoda 3: Uzyskanie kodu powrotu z procesu w Python za pomocą metody „Check_output ()”

„„check_output ()„Metoda Python uruchamia polecenie jako podproces i zapisuje swoje wyjście. Ta metoda przedstawia wyjście jako obiekt bajtu.

Składnia

podproces.check_output (args, *, stdin = brak, stderr = brak, powłoka = false, uniwersal_newLines = false, limit czasu = brak, kodowanie = brak, błędy = brak)

Tutaj, "Args”Oznacza polecenia, które należy wykonać, podczas gdy wszystkie pozostałe parametry są opcjonalne.

Przykład

Minęliśmy „Echo”Polecenie i odpowiedni ciąg do check_output () jako argument. W rezultacie ta metoda zwróci przechwycone dane wyjściowe:

proces = podproces.Check_output ([„echo”, „Witaj z Linuxhint!"])
Drukuj (proces)

Wyjście

Wskazówka dotycząca dodatkowej: dekoduj standardowe wyjście

Python oferuje również obiekt do dekodowania zwróconego standardowego wyjścia za pomocą „rozszyfrować()" metoda. W tym kodzie zdekodujemy ciąg bajtowy za pomocą „UTF-8„Schemat kodowania:

Drukuj (proces.dekoduj („UTF-8”))

Wyjście

Chodziło o uzyskanie kodu powrotnego w Python.

Wniosek

Aby uzyskać kod powrotu z procesu w wykonaniu podprocesów w Python, użyj „ReturnCode ”atrybut,„ Communiate () ”lub„ check_output ()" metoda. „„kod powrotu„Atrybut powraca”0”W przypadku pomyślnego wykonania i„Communication () [0]”Wyprowadza standardowe wyjście przechowywane w indeksie zerowym. Co więcej, „check_output ()”Metoda również działa tak samo. Ten blog obejmował wiele metod otrzymywania kodu powrotnego w Python.