Redireccionando stdio desde un comando en os.system () en Python

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.