Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich unerwünschte Ausgaben von Unterprozessen in Python unterdrücken?

Wie kann ich unerwünschte Ausgaben von Unterprozessen in Python unterdrücken?

Linda Hamilton
Freigeben: 2024-12-16 04:42:16
Original
390 Leute haben es durchsucht

How Can I Suppress Unwanted Output from Subprocesses in Python?

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])
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

Diese Technik spiegelt effektiv den folgenden Shell-Befehl wider:

retcode = os.system("echo 'foo' > /dev/null")
Nach dem Login kopieren

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!

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