Python / modifier la couleur du texte dans l'interpréteur de commandes [dupliquer]

cette question a déjà une réponse ici:

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.

29
demandé sur johannix 2010-02-25 01:46:37

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)
53
répondu Dietrich Epp 2010-02-24 22:55:21

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 ...
9
répondu Kostanos 2013-05-18 23:29:07

tous les principaux codes de couleur sont donnés à https://www.siafoo.net/snippet/88

5
répondu Matthew Flaschen 2010-02-24 22:49:55

curses vous permettra d'utiliser correctement des couleurs pour le type de terminal utilisé.

4
répondu Ignacio Vazquez-Abrams 2010-02-24 22:50:58
2
répondu pixelbeat 2010-02-25 12:19:02

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?')
-3
répondu Day Marquez 2012-07-11 19:37:19