GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So führen Sie einen Shell-Befehl mit Python aus

Python ist eine der beliebtesten Programmiersprachen da draußen. Wenn Sie Linux verwenden, hilft Ihnen das Erlernen von Linux bei der Automatisierung von Arbeitsabläufen und Skripten.

Die Nützlichkeit von Python ergibt sich aus seiner Benutzerfreundlichkeit und seiner Standardbibliothek. Damit können Sie Shell-Befehle erfolgreich ausführen, und das ist das Thema unseres heutigen Tutorials.

In den meisten Fällen haben Sie möglicherweise eine Bash- oder Batch-Datei verwendet, um Ihre Befehle auszuführen, aber Sie sollten dies auch in Python tun können. Wir zeigen Ihnen, wie Sie den Shell-Befehl mit Python ausführen.

Ausführen der Shell-Befehle mit Python

1. OS-Modul

Eine der einfachsten und sichersten Möglichkeiten, den Shell-Befehl über Python auszuführen, ist die Verwendung von os.system().

Speichern wir unsere Python-Datei als usingos.py .

Unten ist der Code, den Sie benötigen, um ihn in Ihren Daten zu verwenden.

import os
os.system('ls')

In der Python-Datei importieren wir zuerst das os-Modul und rufen dann die system method() auf, um den Befehl zu übergeben, den Sie ausführen möchten. Wie Sie sehen können, haben wir darin den Befehl „ls“ ausgeführt. Wenn Sie die Python-Datei ausführen, erhalten Sie die folgende Ausgabe.

python usingos.py

Die Verwendung des os-Moduls ist jedoch sehr eingeschränkt. Zunächst einmal können Sie die Ausgabe nicht in einer Variablen speichern.

Um die Ausgabe zu speichern, müssen Sie eine andere Funktion mit dem os-Modul verwenden. Es ist popen(). Es öffnet einfach eine Pipe zu und von einer Befehlszeile. Dadurch kann auf den Python-Stream zugegriffen werden und somit können die Werte in einer Variablen gespeichert werden.

Speichern wir unser neues Python-Skript als savedvalue.py

Darin müssen Sie den folgenden Code eingeben.

import os
stream = os.popen('eThe value is now returned')
output = stream.read()
print (output)

2. Unterprozessmodul

Abschließend werfen wir einen Blick auf das Modul subprocess. Wenn Sie ernsthaft Shell-Befehle mit Python ausführen möchten, sollten Sie die subprocess-Methode verwenden. Sie benötigen Ihre Python-Version 3.5 oder höher, um das Unterprozessmodul zu verwenden.

Aber warum sollte man das tun? Dies liegt an der Tatsache, dass der Unterprozess über hervorragende Funktionen verfügt, die bei der Arbeit mit Shell-Befehlen in Python gut funktionieren. Beispielsweise können Sie die Ergebnisse in Variablen speichern und auch einen neuen Prozess starten, ohne zu versuchen, das Rad neu zu erfinden.

Schauen wir uns zum besseren Verständnis ein Beispiel an. Wir benennen unsere Datei für dieses Beispiel als subproc.py.

Darin müssen Sie den folgenden Code verwenden.

import subprocess
list_file_names = subprocess.run(['ls'])
print ("Here are the files %d" %list_file_names.returncode)

Die erste Codezeile importiert das Unterprozessmodul. Sobald dies erledigt ist, erstellen wir nun eine neue Variable mit dem Namen „list_file_names“ und verwenden dann die Funktion subprocess.run(). Es nimmt Eingaben in einer Liste entgegen. Wie Sie sehen können, fügen wir einen Linux-Befehl ein, ls, der Dateien und Ordner auflistet.

Zuletzt geben wir die Variable mit einem Rückgabecode aus.

Um ein Argument an den Befehl zu übergeben, müssen Sie das Argument als weiteres Element in der Liste übergeben. Wenn Sie also das Argument „-l“ an „ls“ übergeben möchten, sieht die Liste wie folgt aus:

["ls","-l"]

Schlussfolgerung

Es bringt uns zum Abschluss unseres Tutorials zum Ausführen des Shell-Befehls mit Python unter Verwendung des os und Unterprozess Module. Während die os -Modul ist eher eine einfache Lösung zum Ausführen einer Shell Befehl, der Unterprozess Das Modul verfügt über leistungsfähigere Funktionen zum Auslösen neuer Prozesse und zum Extrahieren der Ausgabe. Auf welche weiteren Arten verwenden Sie Python? Teilen Sie Ihre Tricks mit unseren Lesern in den Kommentaren unten.


Linux
  1. Nohup-Befehl mit Eingabe ausführen?

  2. So Dockerisieren Sie Python-Anwendungen mit Miniconda

  3. So verwenden Sie den Export mit Python unter Linux

  4. Wie speichere ich das Ergebnis eines ausgeführten Shell-Befehls in einer Variablen in Python?

  5. Wie führe ich Code in der Django-Shell durch ein externes Python-Skript aus?

So überwachen Sie ein Linux-System mit dem Glances-Befehl

So erstellen Sie eine Sicherung mit dem tar-Befehl unter Linux

So führen Sie einen Linux-Shell-Befehl / ein Skript im Hintergrund aus

So führen Sie Shell-Befehle über einen HTTP-Server aus

Wie führe ich einen Befehl in einem Shell-Skript aus?

So installieren Sie Python 2.7 unter CentOS 7.1 oder 6.7 mit Anaconda