Czym jest moduł Subprocess w Python?

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: Metoda run jest wywoływana z listą argumentów, które reprezentują polecenie do uruchomienia wraz z opcjami. Parametr text=True umożliwia obsługę wyników jako tekst, a capture_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.

Scroll to Top