In diesem Tutorial werden wir über den Python-Systembefehl lernen. Zuvor haben wir über Python Zufallszahl gelernt.
Python Systembefehl
Beim Erstellen eines Programms in Python müssen Sie möglicherweise einige Shell-Befehle für Ihr Programm ausführen. Wenn Sie zum Beispiel die Pycharm
-IDE verwenden, werden Sie möglicherweise feststellen, dass es eine Option gibt, Ihr Projekt auf GitHub zu teilen. Und Sie wissen wahrscheinlich, dass die Dateiübertragung von git durchgeführt wird, das über die Befehlszeile bedient wird. Daher führt Pycharm im Hintergrund einige Shell-Befehle aus, um dies zu tun. In diesem Tutorial lernen wir jedoch einige Grundlagen zur Ausführung von Shell-Befehlen aus Ihrem Python-Code.
Python os.system() Funktion
Wir können den Systembefehl mit der os.system() Funktion ausführen. Gemäß dem offiziellen Dokument wurde gesagt, dass
Dies wird durch Aufrufen der Standard-C-Funktion system() implementiert und hat die gleichen Einschränkungen.
Jedoch, wenn der Befehl irgendeine Ausgabe erzeugt, wird sie an den Standardausgabestrom des Interpreters gesendet. Die Verwendung dieses Befehls wird nicht empfohlen. Im folgenden Code werden wir versuchen, die Version von git mithilfe des Systembefehls git --version
herauszufinden.
import os
cmd = "git --version"
returned_value = os.system(cmd) # returns the exit code in unix
print('returned value:', returned_value)
Die folgende Ausgabe wurde in Ubuntu 16.04 gefunden, wo git bereits installiert ist.
git version 2.14.2
returned value: 0
Beachten Sie, dass wir die Ausgabe des git-Version-Befehls nicht auf die Konsole drucken. Sie wird gedruckt, weil die Konsole hier der Standardausgabestrom ist.
Python subprocess.call() Funktion
In dem vorherigen Abschnitt haben wir gesehen, dass die Funktion os.system()
funktioniert. Es ist jedoch keine empfohlene Methode, Shell-Befehle auszuführen. Wir werden das Python subprocess-Modul verwenden, um Systembefehle auszuführen. Wir können Shell-Befehle mithilfe der Funktion subprocess.call()
ausführen. Siehe den folgenden Code, der äquivalent zum vorherigen Code ist.
import subprocess
cmd = "git --version"
returned_value = subprocess.call(cmd, shell=True) # returns the exit code in unix
print('returned value:', returned_value)
Und die Ausgabe wird ebenfalls dieselbe sein.
Python subprocess.check_output() Funktion
Bisher haben wir die Systembefehle mit Hilfe von Python ausgeführt. Aber wir konnten die Ausgabe, die diese Befehle erzeugten, nicht manipulieren. Mit der Funktion subprocess.check_output()
können wir die Ausgabe in einer Variablen speichern.
import subprocess
cmd = "date"
# gibt die Ausgabe als Byte-String zurück
returned_output = subprocess.check_output(cmd)
# Verwendung der decode() Funktion, um den Byte-String in einen String umzuwandeln
print('Current date is:', returned_output.decode("utf-8"))
Es wird eine Ausgabe wie folgt produzieren
Current date is: Thu Oct 5 16:31:41 IST 2017
Also haben wir in den obigen Abschnitten grundlegende Ideen zur Ausführung von Python-Systembefehlen diskutiert. Aber es gibt keine Grenze beim Lernen. Wenn Sie möchten, können Sie mehr über Python-Systembefehle mit dem Subprocess-Modul aus der offiziellen Dokumentation erfahren.
Source:
https://www.digitalocean.com/community/tutorials/python-system-command-os-subprocess-call