Führen Sie den Shell-Befehl aus und erhalten Sie die Ausgabe in Python
-
Führen Sie CMD-Befehle aus einem Python-Skript aus und erhalten Sie die Ausgabe mit
os.system()
-
Führen Sie CMD-Befehle aus einem Python-Skript aus und erhalten Sie die Ausgabe mit dem Modul
Subprocess
In diesem Artikel lernen wir, wie man mit Hilfe von os.system()
cmd-Befehle aus einem Python-Skript ausführt. Außerdem erfahren wir, wie wir mit Hilfe des Moduls subprocess
in Python einfacher cmd-Befehle aus dem Skript ausführen können.
Führen Sie CMD-Befehle aus einem Python-Skript aus und erhalten Sie die Ausgabe mit os.system()
Wir führen Terminalbefehle in der Eingabeaufforderung oder einem anderen Terminal für verschiedene Zwecke aus. Aber manchmal ist es notwendig, einen bestimmten Befehl innerhalb des Skripts auszuführen.
Wir werden sehen, wie wir sie direkt im Python-Skript ausführen können. Es ist praktisch, wenn wir mit der Serverkonfiguration arbeiten.
Lassen Sie uns Ihnen zunächst einige Befehle zeigen, die im Terminal funktionieren, wie z. B. dir
, cd
oder md
.
Jetzt werden wir sehen, wie wir dieselben in das Python-Skript aufnehmen können. Dazu importieren wir ein Modul namens os
.
Das Modul os
hilft uns, mit unserem Betriebssystem zu interagieren. Das os
-Modul bietet umfassende Unterstützung für Betriebssystemaufgaben wie Datei- und Ordnerverwaltung.
Lassen Sie uns in den Code springen. Das system()
ist eine Methode, die den Befehl in der gleichen Shell ausführt. Wenn wir ihm also einen Befehl geben, wird er fortfahren und ihn so ausführen, wie wir ihn im Terminal ausführen würden.
Die Systemfunktion kann auch eine Reihe von Befehlen ausführen. Es führt jeden Befehl aus, den Sie im Terminal ausführen können.
Wir verwenden den try
-Block und innerhalb dieses Blocks die system()
-Methode, die uns hilft, über das Terminal mit dem Betriebssystem zu interagieren. Wenn der try
-Block den angegebenen Befehl nicht ausführt, gehen wir zum außer
-Block.
Innerhalb der system()
-Methode müssen wir unsere Befehle weitergeben, aber der Befehlstyp ist cmd
. Dafür verwenden wir /k
und innerhalb eines einfachen oder doppelten Anführungszeichens müssen wir unseren Befehl eingeben.
import os
try:
os.system('cmd /k "date"')
except:
print("Could not execute command")
Lassen Sie uns laufen und sehen, ob dies uns die genaue Ausgabe liefert.
The current date is: 24/08/2022
Enter the new date: (dd-mm-yy)
Wir können sehen, dass die Ausgabe dieselbe ist wie die Eingabeaufforderung.
Es gibt viele Befehle, die Sie ausführen können. Sie können Notepad oder Rechner öffnen oder Ihre Systeminformationen und vieles mehr anzeigen.
Wenn Sie den Inhalt dessen abrufen möchten, was der Befehl zurückgibt, können Sie ihn mit der Funktion popen()
des Moduls os
abrufen. Innerhalb dieser Funktion können wir den Befehl übergeben und die Methode readlines()
verwenden, um seinen Inhalt abzurufen.
Wir können viele Methoden verwenden, um saubere Daten zu erhalten. Es hängt von dir ab.
import os
DATA = os.popen("help").readlines()[5].strip("\n")
print(DATA)
Wir können diese Befehle überall verwenden, wie Klassen, Schleifen und Funktionen. Dies funktioniert genau so, wie es funktioniert, ohne es in eine Funktion zu packen.
import os
def CMD_Com():
DATA = os.popen("help").readlines()[5].strip("\n")
print(DATA)
CMD_Com()
Ausgang:
CACLS Displays or modifies access control lists (ACLs) of files.
Führen Sie CMD-Befehle aus einem Python-Skript aus und erhalten Sie die Ausgabe mit dem Modul Subprocess
Die Interaktion mit Teilprozessen ist eine wesentliche Fähigkeit, die man haben muss. Die Verwendung des Moduls os
wird nicht empfohlen, um einen Terminalbefehl innerhalb des Python-Skripts auszuführen.
Die Verwendung von os.system()
zur Ausführung des Terminalbefehls ist eine sehr vereinfachte Art, einen Befehl in Python auszuführen.
Das os.system()
hat eine eingeschränkte Funktionalität; Der richtige Weg ist die Verwendung eines Moduls namens subprocess
, das es nicht zu schwierig macht, Terminalbefehle auszuführen. Mit dem Modul subprocess
können wir alle Betriebssystembefehle ausführen, an denen wir gerade arbeiten.
Auf diese Weise können wir alle vorhandenen Befehle in einem Betriebssystem ausführen, z. B. das Öffnen von Notepad oder das Überprüfen des aktuellen Arbeitsverzeichnisses oder jede andere Operation, die wir mit dem Modul subprocess
ausführen können.
import subprocess
# subprocess.Popen('notepad')
# subprocess.Popen('systeminfo')
subprocess.Popen("dir", shell=True)
Ausgang:
Directory of C:\Users\Dell\Downloads\demo
24/08/2022 07:01 pm <DIR> .
24/08/2022 07:01 pm <DIR> ..
25/08/2022 01:47 am 460 demo.py
1 File(s) 460 bytes
2 Dir(s) 32,532,512,768 bytes free
Mehr über das Modul subprocess
erfahren Sie hier.
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn