Generalmente puedo cambiar la sys.stdout
en Python cambiando el valor de sys.stdout
. Sin embargo, esto solo parece afectar print
declaraciones print
. Entonces, ¿hay alguna manera de suprimir la salida (a la consola) de un progtwig que se ejecuta mediante el os.system()
en Python?
Podría considerar ejecutar el progtwig a través de subprocess.Popen
, con subprocess.PIPE
communication, y luego empujar esa salida donde quiera, pero tal como está, os.system
simplemente ejecuta el comando y nada más.
from subprocess import Popen, PIPE p = Popen(['command', 'and', 'args'], stdout=PIPE, stderr=PIPE, stdin=PIPE) output = p.stdout.read() p.stdin.write(input)
Mucho más flexible en mi opinión. Es posible que desee consultar la documentación completa: módulo de subproceso de Python
En un sistema Unix, puede redireccionar stderr y stdout a / dev / null como parte del comando en sí.
os.system(cmd + "> /dev/null 2>&1")
Redirigir stderr así como stdout.
Si desea eliminar completamente la consola que se inicia con el progtwig python, puede guardarla con la extensión .pyw.
Aunque puedo estar entendiendo mal la pregunta.