Beim Ausführen von Befehlen mit os.system wird die Ausgabe normalerweise auf dem Bildschirm angezeigt. Es gibt jedoch Situationen, in denen Sie die Ausgabe einer Variablen zuweisen und verhindern möchten, dass sie auf dem Bildschirm angezeigt wird.
Der bereitgestellte Code veranschaulicht dieses Problem:
var = os.system("cat /etc/services") print(var)
Anstatt den Befehl zu erfassen Ausgabe, var enthält 0, was die erfolgreiche Ausführung des Befehls anzeigt. Um dieses Problem zu lösen, sollten Sie die Verwendung von popen in Betracht ziehen:
var = os.popen('cat /etc/services').read()
Wie die Dokumentation für Python 3.6 nahelegt, bietet subprocess.Popen eine robustere Lösung für die Verwaltung von Unterprozessen.
proc = subprocess.Popen(["cat", "/etc/services"], stdout=subprocess.PIPE, shell=True) (out, err) = proc.communicate() print("program output:", out)
Mit subprocess können Sie kann sowohl die Standardausgabe als auch den Fehlerstrom erfassen, wie im obigen Code gezeigt.
Das obige ist der detaillierte Inhalt vonWie kann ich die Ausgabe von os.system in Python diskret verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!