Esistono due moduli python in grado di eseguire questo modulo colorama
e tendo.ansiterm
, originariamente scritto per waf
.
Con i test iniziali, colorama
è più maturo, anche se richiede due righe di codice anziché uno.
import sys
try:
import colorama
colorama.init()
except:
try:
import tendo.ansiterm
except:
pass
sys.stdout.write"\033[33mYellow Submarine"
sys.stderr.write"\033[31mred, red , wine!"
Ora, sia funzionerà normalmente, ma se si tenta di reindirizzare una sola delle stderr o stdout, ansiterm sarà in uscita codici ANSI per lo screening e l'output reindirizzato.
Non sono sicuro ma ho il sospetto che il comportamento corretto sia quello di eliminare i codici ANSI quando l'output non è un tty, non si vuole vedere l'escape ANSI nei file di registro.
Ciò significa che è necessario eseguire il Python monkeypatching, che è una cosa negativa. È meglio impostare il filtro stdout in modo esplicito. –