Moduł subprocess
w Pythonie to potężne narzędzie, które pozwala na tworzenie nowych procesów, łączenie się z ich potokami wejściowymi/wyjściowymi/błędami oraz uzyskiwanie ich kodów zwrotnych. Dzięki temu modułowi Python może komunikować się z innymi programami i systemami zarządzania procesami. Używanie subprocess
jest kluczowe w skryptach, które wymagają interakcji z systemem operacyjnym lub zewnętrznymi aplikacjami.
Przykład zastosowania
Poniżej znajduje się przykład użycia modułu subprocess
, który pokazuje, jak uruchomić zewnętrzny proces (w tym przypadku ping
) i przechwycić jego wyjście.
import subprocess
# Uruchomienie zewnętrznego procesu i przechwycenie jego wyjścia
def run_external_command():
try:
# Uruchomienie polecenia 'ping' z użyciem subprocess.run
completed_process = subprocess.run(["ping", "-c", "4", "google.com"], text=True, capture_output=True)
# Wyświetlenie standardowego wyjścia procesu
print("Standardowe wyjście:")
print(completed_process.stdout)
# Sprawdzenie, czy proces zakończył się sukcesem
if completed_process.returncode == 0:
print("Proces zakończył się sukcesem.")
else:
print("Proces zakończył się błędem.")
except Exception as e:
print(f"Wystąpił błąd: {e}")
# Wywołanie funkcji
run_external_command()
Wyjaśnienie kodu
- Import modułu subprocess: Na początku skryptu importowany jest moduł
subprocess
, który umożliwia uruchamianie nowych procesów. - Definicja funkcji
run_external_command
: Funkcja ta służy do uruchomienia zewnętrznego polecenia (ping
w tym przypadku) i przechwycenia jego wyników. - Użycie
subprocess.run
: Metodarun
jest wywoływana z listą argumentów, które reprezentują polecenie do uruchomienia wraz z opcjami. Parametrtext=True
umożliwia obsługę wyników jako tekst, acapture_output=True
pozwala na przechwycenie standardowego wyjścia i błędu. - Wyświetlenie wyników: Standardowe wyjście z procesu jest wyświetlane, a także sprawdzany jest kod zwrotny, aby określić, czy proces zakończył się sukcesem.
Podsumowanie
Moduł subprocess
jest niezwykle przydatny w skryptach Pythona, które muszą wchodzić w interakcje z zewnętrznymi procesami lub poleceniami systemowymi. Dzięki temu można rozbudowywać skrypty Python o możliwości nieosiągalne w samym języku programowania, wykorzystując zasoby i narzędzia dostępne w systemie operacyjnym. Zastosowania obejmują automatyzację zadań systemowych, zarządzanie procesami oraz integrację z innymi aplikacjami.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Python w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.