Unterdrückung der Subprozessausgabe in Python
In Python können Subprozesse zur Ausführung verschiedener Systembefehle eingesetzt werden. Während solche Unterprozesse möglicherweise die erforderliche Funktionalität bereitstellen, kann ihre inhärente Ausführlichkeit die Ausgabe überladen und die Lesbarkeit beeinträchtigen. Betrachten Sie insbesondere das vom Benutzer bereitgestellte Beispiel:
import subprocess text = 'Hello World.' print text subprocess.call(['espeak', text])
In diesem Fall generiert eSpeak die gewünschte Audioausgabe, erzeugt aber auch unerwünschte Fehlermeldungen. Diese Unordnung der Shell kann es schwierig machen, auf gedruckten Text zuzugreifen oder ihn zu interpretieren. Leider gibt es keine dokumentierte Option zum Deaktivieren der Ausführlichkeit von eSpeak.
Um dieses Problem zu beheben, bietet Python eine praktische Lösung zum Unterdrücken der Subprozessausgabe, sodass Benutzer eine saubere und übersichtliche Shell beibehalten können:
Lösung:
Leiten Sie die Unterprozessausgabe mit dem folgenden Code für Python >= an DEVNULL um 3.3:
import os import subprocess retcode = subprocess.call(['echo', 'foo'], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)
Für Python-Versionen unter 3.3, einschließlich 2.7, verwenden Sie den folgenden Code:
FNULL = open(os.devnull, 'w') retcode = subprocess.call(['echo', 'foo'], stdout=FNULL, stderr=subprocess.STDOUT)
Diese Technik spiegelt effektiv den folgenden Shell-Befehl wider:
retcode = os.system("echo 'foo' > /dev/null")
Das obige ist der detaillierte Inhalt vonWie kann ich unerwünschte Ausgaben von Unterprozessen in Python unterdrücken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!