Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die ausführliche Ausgabe von Unterprozessen in Python unterdrücken?
Viele Befehlszeilentools wie eSpeak zeigen ausführliche Ausgaben zusammen mit den beabsichtigten Aktionen an. Dies kann die Shell überladen und es schwierig machen, die vorherige Ausgabe zu lesen oder mit der Eingabeaufforderung zu interagieren.
Bei Python-Skripten, die solche Tools mithilfe des Unterprozessmoduls aufrufen, kann das Stummschalten ihrer Ausgabe die Lesbarkeit und Benutzerfreundlichkeit verbessern. Eine effektive Methode besteht darin, die Standardausgabe (STDOUT) und die Standardfehlerausgabe (STDERR) auf ein Nullgerät umzuleiten.
Für Python-Versionen 3.3 und höher stellt das Unterprozessmodul bereit die DEVNULL-Konstante als Nullgerät. Durch die Übergabe von DEVNULL an die stdout- und stderr-Argumente von subprocess.call() wird die Ausgabe des Unterprozesses effektiv unterdrückt.
import subprocess subprocess.call(['echo', 'foo'], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)
In früheren Versionen In Python, einschließlich 2.7, ist die DEVNULL-Konstante nicht verfügbar. Stattdessen kann man manuell ein Null-Gerät öffnen und dorthin umleiten.
import os FNULL = open(os.devnull, 'w') subprocess.call(['echo', 'foo'], stdout=FNULL, stderr=subprocess.STDOUT)
Das Befehlszeilen-Äquivalent des obigen Python-Codes ist:
retcode = os.system("echo 'foo' >& /dev/null")
Durch den Einsatz dieser Techniken können Sie die ausführliche Unterprozessausgabe Ihrer Python-Skripte stummschalten, wodurch die Shell sauber bleibt und die Lesbarkeit für weitere Interaktionen verbessert wird.
Das obige ist der detaillierte Inhalt vonWie kann ich die ausführliche Ausgabe von Unterprozessen in Python unterdrücken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!