Python / modifier la couleur du texte dans l'interpréteur de commandes [dupliquer]
cette question a déjà une réponse ici:
- imprimé en terminal avec des couleurs? 37 réponses
je me demandais si quelqu'un sait comment régler la couleur du texte qui s'affiche dans la coquille. J'ai remarqué que le ' ls ' utilise un couple de couleurs différentes lors de l'impression des informations à la screen (sur ma machine Linux), se demandait si je pouvais en profiter en Python.
6 réponses
utilisez des Malédictions ou des séquences d'évasion ANSI. Avant de commencer à débiter des séquences d'échappement, vous devriez vérifier que stdout est un tty. Vous pouvez le faire avec sys.stdout.isatty()
. Voici une fonction tirée d'un projet de mine qui imprime la sortie en rouge ou en vert, selon l'état, en utilisant des séquences d'échappement ANSI:
def hilite(string, status, bold):
attr = []
if status:
# green
attr.append('32')
else:
# red
attr.append('31')
if bold:
attr.append('1')
return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), string)
je viens de décrire bibliothèque très populaire clint . Qui a plus de fonctionnalités à part colorer la sortie sur le terminal.
par la façon dont il prend en charge MAC, Linux et les terminaux Windows.
Voici l'exemple d'utilisation:
installation (dans Ubuntu)
pip install clint
pour ajouter de la couleur à une chaîne de caractères
colored.red('red string')
exemple: utilisation pour la sortie Couleur (Style de commande django)
from django.core.management.base import BaseCommand
from clint.textui import colored
class Command(BaseCommand):
args = ''
help = 'Starting my own django long process. Use ' + colored.red('<Ctrl>+c') + ' to break.'
def handle(self, *args, **options):
self.stdout.write('Starting the process (Use ' + colored.red('<Ctrl>+c') + ' to break)..')
# ... Rest of my command code ...
tous les principaux codes de couleur sont donnés à https://www.siafoo.net/snippet/88
curses
vous permettra d'utiliser correctement des couleurs pour le type de terminal utilisé.
c'est si simple à faire sur un PC: Windows OS: Envoyer l'os une commande pour changer le texte: import os
os.system('color a') #green text
print 'I like green'
raw_input('do you?')