Question

Je suis à la recherche d'un module Python qui ajouter le support ANSI sous Windows.

Cela signifie que après avoir importé le module, si vous chaînes échappé sortie ANSI, ils apparaissent en conséquence.

Était-ce utile?

La solution

Il y a deux modules de python qui sont capables de faire colorama et tendo.ansiterm le module , qui a été initialement écrit pour waf .

Par les premiers tests indiquent que colorama est plus mature, même si elle a besoin de deux lignes de code au lieu d'un.

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!"

Maintenant, les deux fonctionneront normalement mais si vous essayez de rediriger un seul des stderr ou stdout, ansiterm Affichera codes ANSI à l'écran et la sortie redirigée.

Je ne suis pas sûr, mais je pense que le comportement correct est de supprimer les codes ANSI lorsque le si de sortie et non un téléscripteur, vous ne voulez pas voir ANSI échappe dans des fichiers journaux.

Autres conseils

Votre meilleur pari est probablement d'utiliser le module Colorama .

En fait, je crois que la console Windows ne supporte pas les couleurs ANSI en mode natif. Colorama résout cette difficulté en interceptant des séquences ANSI et effectuer les appels de changement de couleur Windows appropriés. De cette façon, votre code peut être tout à fait portable, car il peut imprimer des couleurs de la même manière à la fois sous Windows et dans les terminaux conformes aux normes ANSI.

Vous pouvez également utiliser coloré dont l'utilisation Colorama pour la portabilité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top