2011-06-30 3 views
22

Je cherche un moyen de changer la couleur de la sortie de texte de mes scripts Python lors de son exécution. L'idée de base est quelque chose comme ceci:Modification de la couleur du texte du shell (Windows)

if (Data < LowerLimit): 
    print "Failed" # Output Failed as Red Text 
elif (Data > UpperLimit): 
    print "Failed" # Red Color 
else: 
    print "Passed" # Blue Color 

Les scripts sont utilisés sur des machines Windows pour l'analyse rapide des données.

+1

un doublon, bien que presque aucune des solutions de la question liée ne fonctionne sur Windows. –

Répondre

48

Ou sur le meilleur module E ont trouvé http://pypi.python.org/pypi/colorama

+1

N'oubliez pas de marquer comme réponse lorsque vous avez terminé –

+3

Merci ... Colorama est incroyable! –

+0

Oui - colorama fonctionne pour l'invite de commande Windows 7. Avant Windows 10, les codes ANSI ne fonctionnent pas (pour une raison insondable) dans l'invite de commande. Colorama peut utiliser les commandes Win32 en toute transparence - ce qui le rend fonctionnel et le rend facile à utiliser. Je suis content d'avoir enfin trouvé une solution à ce problème. –

0

Essayez de regarder le lien suivant: Python | change text color in shell

Ou lire ici: http://bytes.com/topic/python/answers/21877-coloring-print-lines

En solution générale est d'utiliser des codes ANSI lors de l'impression de votre chaîne.

Il existe une solution qui exécute exactement ce dont vous avez besoin.

+0

Mais pourquoi downvote? Quel est le problème avec ma réponse ???? –

+1

J'ai essayé leurs solutions, mais elles ne semblent pas fonctionner avec Windows. La première réponse (la fonction hilite) lorsqu'elle est appelée hilite ("Bonjour", Vrai, Faux) donne '\ x1b [32mhello \ x1b [om' qui, lorsqu'il est imprimé, entraîne ← [32mhello ← [0m au lieu d'imprimer en couleur. Aussi la bibliothèque de curses n'est pas sur les plates-formes de Windows. – CyanRook

+0

Désolé, je l'ai vérifié dans windows avec pycharm et il fonctionne parfaitement, mais il ne fonctionne pas avec la console Python, alors s'il vous plaît pardonnez et supportez –

1

Ceci est extrêmement simple! Plutôt que d'importer des modules impairs pour python ou d'essayer des commandes longues, vous pouvez profiter des commandes de Windows OS.

Dans Windows, des commandes existent pour modifier la couleur du texte de l'invite de commande. Vous pouvez utiliser ce en python en commençant par un: import os

Ensuite, vous devez avoir une ligne de changer la couleur du texte, placez-vous été voulez dans votre code. os.system ('couleur 4')

Vous pouvez déterminer les autres couleurs en démarrant cmd.exe et en tapant l'aide de la couleur.

La bonne partie? C'est tout leur est, à de simples lignes de code. -Day

+6

Cela change la couleur de toute la console, pas seulement le texte imprimé par la suite. – zvone

+0

Désolé pour ça les gars. J'avais sommeil et totalement mal compris la question. – Daymarquez

+0

Il est encore une réponse valide à la question EXTRÊMEMENT LIÉE à OBTENIR DUPLICATE MARQUÉ qui est comment changer la couleur du texte shell en Python ... – Ian

-3

en train d'étudier pendant un certain temps et non obtenu de réponses satisfaisantes, mais ...

1) des séquences d'échappement ANSI font un travail dans un terminal sous Linux

2) si vous le pouvez tolérer un ensemble limité de colo (u) rs, essayez ceci:

print ("bonjour", end = ''); print ("error", end = '', fichier = sys.stderr); print (« au revoir »)

En mode veille « bonjour » et « au revoir » sont en bleu et « erreur » est en rouge.

Pas fantastique, mais assez bon pour l'instant, et facile!

+0

Aussi juste essayé sur Windows - fonctionne la même chose dans un "terminal" inactif a également oublié vous devez: 'import sys' – Neil

+3

C'est juste IDLE colorier stdout et stderr séparément. Cela ne fera rien dans une console normale (où les scripts sont généralement exécutés) –

Questions connexes