Tutorials  /  Python

Python System Command - os.system() und subprocess.call()

Ccentron Redaktion · Februar 2024 ·4 Min. Lesezeit ·Python, Tutorial

Beim Programmieren in Python müssen Sie möglicherweise einige Shell-Befehle für Ihr Programm ausführen. Wenn Sie beispielsweise die Pycharm IDE verwenden, bemerken Sie vielleicht, dass es eine Option gibt, Ihr Projekt auf Github zu teilen. Und Sie wissen wahrscheinlich, dass die Dateiübertragung mit Git erfolgt, das über die Befehlszeile bedient wird. Pycharm führt also einige Shell-Befehle im Hintergrund aus, um dies zu tun. In diesem Tutorial werden wir jedoch einige Grundlagen über das Ausführen von Shell-Befehlen aus Ihrem Python-Code lernen.

Python os.system() Funktion

Wir können Systembefehle mit der Funktion os.system() ausführen. Laut dem offiziellen Dokument wurde gesagt, dass

dies durch Aufrufen der Standard-C-Funktion system() implementiert wird und die gleichen Einschränkungen hat.

Erzeugt der Befehl jedoch einen Output, wird dieser an den Standard-Output-Stream des Interpreters gesendet. Die Verwendung dieses Befehls wird nicht empfohlen. Im folgenden Code werden wir versuchen, die Version von Git mit dem Systembefehl git --version zu ermitteln.

Python
import os

cmd = "git --version"

returned_value = os.system(cmd)  # returns the exit code in unix
print('returned value:', returned_value)

Der folgende Output wurde in Ubuntu 16.04 gefunden, wo Git bereits installiert ist.

Konsole
git version 2.14.2
returned value: 0

Beachten Sie, dass wir den Output des Git-Version-Befehls nicht auf die Konsole drucken, er wird gedruckt, weil die Konsole hier der Standard-Output-Stream ist.

VM

Passende Infrastruktur bei centron

Skripte und Dienste brauchen irgendwann eine Umgebung, die durchläuft: ccloud³ VMs ab 3,12 € im Monat, stundengenau abgerechnet. Cloud Server mieten →

Python subprocess.call() Funktion

Im vorherigen Abschnitt haben wir gesehen, dass die Funktion os.system() gut funktioniert. Aber es ist nicht der empfohlene Weg, Shell-Befehle auszuführen. Wir werden das Python-Subprocess-Modul verwenden, um Systembefehle auszuführen. Wir können Shell-Befehle mit der Funktion subprocess.call() ausführen. Siehe den folgenden Code, der dem vorherigen Code entspricht.

Python
import subprocess

cmd = "git --version"

returned_value = subprocess.call(cmd, shell=True)  # returns the exit code in unix
print('returned value:', returned_value)

Python subprocess.check_output() Funktion

Bisher haben wir die Systembefehle mit Hilfe von Python ausgeführt. Aber wir konnten den von diesen Befehlen produzierten Output nicht manipulieren. Mit der Funktion subprocess.check_output() können wir den Output in einer Variablen speichern.

Python
import subprocess

cmd = "date"

# returns output as byte string
returned_output = subprocess.check_output(cmd)

# using decode() function to convert byte string to string
print('Current date is:', returned_output.decode("utf-8"))

Es wird einen Output wie den folgenden erzeugen

Code
Current date is: Thu Oct  5 16:31:41 IST 2017

Also, in den obigen Abschnitten haben wir über grundlegende Ideen zum Ausführen von os.system() und subprocess.call() gesprochen. Aber es gibt keine Grenzen im Lernen für einen Command.

%5Btags%5D

/tutorials/verwendung-der-funktion-puts-in-c-c

/tutorials/container-an-introduction

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Python
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren