Es gibt mehrere Möglichkeiten, einen Befehl in der Shell auszuführen, ohne einen neuen untergeordneten Prozess zu erzeugen. Hier sind einige gängige Ansätze:
- Verwenden Sie das Modul „subprocess“ :Das Modul „subprocess“ in Python bietet eine Vielzahl von Funktionen zum Ausführen von Shell-Befehlen und zur Interaktion mit deren Ausgabe. Eine gängige Möglichkeit, einen Befehl auszuführen, ohne einen neuen Prozess zu erstellen, ist die Verwendung der Funktion „subprocess.run()“ mit dem Argument „shell=True“. Zum Beispiel:
„Python
Unterprozess importieren
Führen Sie einen Befehl aus, ohne einen neuen Prozess zu erstellen
Ausgabe =subprocess.run(["ls", "-l"], Capture_output=True, Shell=True).stdout
Ausgabe drucken
drucken (Ausgabe)
„
- Verwenden Sie das „OS“-Modul :Das „os“-Modul in Python bietet außerdem mehrere Funktionen für die Interaktion mit dem Betriebssystem, einschließlich der Möglichkeit, Shell-Befehle auszuführen. Um einen Befehl auszuführen, ohne einen neuen Prozess zu erstellen, können Sie die Funktion „os.system()“ verwenden. Zum Beispiel:
„Python
Betriebssystem importieren
Führen Sie einen Befehl aus, ohne einen neuen Prozess zu erstellen
os.system("ls -l")
„
- Verwenden Sie einen Shell-Kontextmanager :Python verfügt außerdem über einen Kontextmanager namens „subprocess.Popen“, mit dem Sie Befehle ausführen können, ohne einen neuen Prozess zu erstellen. Der Kontextmanager kümmert sich darum, den Prozess zu schließen, wenn Sie damit fertig sind. Zum Beispiel:
„Python
Unterprozess importieren
Führen Sie einen Befehl aus, ohne einen neuen Prozess zu erstellen
mit subprocess.Popen(["ls", "-l"], stdout=subprocess.PIPE, universal_newlines=True) als Prozess:
# Lesen Sie die Ausgabe des Befehls
Ausgabe =process.stdout.read()
Ausgabe drucken
drucken (Ausgabe)
„
Jeder dieser Ansätze hat seine eigenen Vor- und Nachteile und die beste Wahl für Ihren spezifischen Anwendungsfall hängt von Ihren Anforderungen und Vorlieben ab.