Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich Shell-Befehle ausführen und deren Ausgabe in Python erfassen?

Wie kann ich Shell-Befehle ausführen und deren Ausgabe in Python erfassen?

Linda Hamilton
Freigeben: 2024-12-25 20:11:23
Original
466 Leute haben es durchsucht

How Can I Run Shell Commands and Capture Their Output in Python?

Shell-Befehle ausführen und Ausgabe erfassen

Die Aufgabe, Shell-Befehle programmgesteuert auszuführen und ihre Ausgabe als Zeichenfolge zu erfassen, kann mit Hilfe des Unterprozessmoduls von Python erledigt werden.

check_output-Funktion (Python 2.7 und Oben)

Für den einfachsten Ansatz in offiziell gepflegten Python-Versionen verwenden Sie die Funktion check_output:

import subprocess

output = subprocess.check_output(['ls', '-l'])
print(output) # Output: b'total 0\n-rw-r--r--  1 memyself  staff  0 Mar 14 11:04 files\n'
Nach dem Login kopieren

run-Funktion (Python 3.5 und höher)

In Python 3.5 , Die Run-Funktion bietet einen flexibleren und moderneren Ansatz:

import subprocess

result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
print(result.stdout.decode('utf-8')) # Output: 'total 0\n-rw-r--r--  1 memyself  staff  0 Mar 14 11:04 files\n'
Nach dem Login kopieren

Popen Constructor (All Versionen)

Für erweiterte Kompatibilität und erweiterte Funktionalität verwenden Sie den Low-Level-Popen-Konstruktor. Mit kommunizieren können Sie Ausgaben erfassen und Eingaben übergeben:

import subprocess

p = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE)
output, _ = p.communicate()
print(output) # Output: b'.\n..\nfoo\n'
Nach dem Login kopieren

Notizen

Shell-Befehlsausführung (Shell=True Argument)

Standardmäßig , die Funktionen führen einzelne Programme aus. Um komplexe Shell-Befehle auszuführen, setzen Sie „shell=True“. Dies wirft jedoch Sicherheitsbedenken auf.

Eingabeverarbeitung

Um Eingaben über stdin zu übergeben, geben Sie das Eingabeschlüsselwortargument in run oder Popen an.

Fehlerbehandlung

Für eine ordnungsgemäße Fehlerbehandlung verwenden Sie check_output mit stdout=subprocess.STDOUT oder Popen mit stderr=subprocess.STDOUT. Alternativ überprüfen Sie den Rückgabecode des Unterprozesses.

Das obige ist der detaillierte Inhalt vonWie kann ich Shell-Befehle ausführen und deren Ausgabe in Python erfassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage