Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich einen Unterprozess in Python unter Ubuntu stillschweigend ausführen und seine Ausgabe unterdrücken?

Wie kann ich einen Unterprozess in Python unter Ubuntu stillschweigend ausführen und seine Ausgabe unterdrücken?

DDD
DDDOriginal
2024-12-11 03:54:15460Durchsuche

How Can I Silently Run a Subprocess in Python on Ubuntu and Suppress its Output?

Stummschalten der Subprozessausgabe unter Ubuntu

Im bereitgestellten Python-Skript überfüllt eSpeak die Shell mit unerwünschten Fehlermeldungen. Das Ziel besteht darin, diese Ausgabe zu unterdrücken und gleichzeitig die gewünschte akustische Reaktion beizubehalten. Obwohl kein direkter Weg gefunden wurde, die Ausführlichkeit von eSpeak zu unterdrücken, gibt es eine Lösung, um seine Ausgabe visuell zum Schweigen zu bringen.

Umleiten der Ausgabe in Python >= 3.3

Um die Ausgabe effektiv zu verbergen, leiten Sie sie zu a um Null-Gerät mit dem DEVNULL-Attribut:

import subprocess

subprocess.call(['echo', 'foo'],
    stdout=subprocess.DEVNULL,
    stderr=subprocess.STDOUT)

Ausgabe in Python umleiten < 3.3

Für Versionen vor Python 3.3 verwenden Sie den folgenden Ansatz:

import os
FNULL = open(os.devnull, 'w')
subprocess.call(['echo', 'foo'],
    stdout=FNULL,
    stderr=subprocess.STDOUT)

Ähnlichkeiten mit Shell-Befehl

Die bereitgestellte Lösung ähnelt der Ausführung des folgenden Shell-Befehls:

retcode = os.system("echo 'foo' > /dev/null")

Durch die Umleitung der Ausgabe nach /dev/null wird das Durcheinander effektiv ausgeblendet, sodass die Shell für weitere Zwecke sauber bleibt Interaktionen.

Das obige ist der detaillierte Inhalt vonWie kann ich einen Unterprozess in Python unter Ubuntu stillschweigend ausführen und seine Ausgabe unterdrücken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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