python колорама печать всех цветов - PullRequest
2 голосов
/ 08 мая 2020

Я новичок в изучении python, и я познакомился с колорамой. В качестве тестового проекта я хотел распечатать все доступные цвета в colorama.

from colorama import Fore
from colorama import init as colorama_init

colorama_init(autoreset=True)

colors = [x for x in dir(Fore) if x[0] != "_"]
for color  in colors:
    print(color + f"{color}")

из c это выводит весь черный вывод следующим образом:

BLACKBLACK
BLUEBLUE
CYANCYAN
...

, потому что Dir ( Fore) просто дайте мне строковое представление Fore.BLUE, Fore.GREEN, ...

Это способ доступа ко всем свойству Fore Color, чтобы они действительно работали как в

print(Fore.BLUE + "Blue")

Или, другими словами, express моя проблема лучше:

Я хотел написать это:

print(Fore.BLACK + 'BLACK')
print(Fore.BLUE + 'BLUE')
print(Fore.CYAN + 'CYAN')
print(Fore.GREEN + 'GREEN')
print(Fore.LIGHTBLACK_EX + 'LIGHTBLACK_EX')
print(Fore.LIGHTBLUE_EX + 'LIGHTBLUE_EX')
print(Fore.LIGHTCYAN_EX + 'LIGHTCYAN_EX')
print(Fore.LIGHTGREEN_EX + 'LIGHTGREEN_EX')
print(Fore.LIGHTMAGENTA_EX + 'LIGHTMAGENTA_EX')
print(Fore.LIGHTRED_EX + 'LIGHTRED_EX')
print(Fore.LIGHTWHITE_EX + 'LIGHTWHITE_EX')
print(Fore.LIGHTYELLOW_EX + 'LIGHTYELLOW_EX')
print(Fore.MAGENTA + 'MAGENTA')
print(Fore.RED + 'RED')
print(Fore.RESET + 'RESET')
print(Fore.WHITE + 'WHITE')
print(Fore.YELLOW + 'YELLOW')

короче:

for color in all_the_colors_that_are_available_in_Fore:
    print('the word color in the representing color')
    #or something like this?
    print(Fore.color + color)

1 Ответ

1 голос
/ 08 мая 2020

Причина, по которой название цвета печатается дважды, хорошо описана в комментарии Патрика к вопросу.

Is their a way to access all the Fore Color property so they actualy work as in

Согласно: https://pypi.org/project/colorama/

Вы можете напечатать цветную строку, используя другие способы, кроме, например, print(Fore.RED + 'some red text')

Вы можете использовать функцию coloured из модуля termcolor, который принимает строку и цвет для раскрашивания эту строку. Но не все цвета Fore поддерживаются, поэтому вы можете сделать следующее:

from colorama import Fore
from colorama import init as colorama_init
from termcolor import colored

colorama_init(autoreset=True)

colors = [x for x in dir(Fore) if x[0] != "_"]
colors = [i for i in colors if i not in ["BLACK", "RESET"] and "LIGHT" not in i] 

for color  in colors:
    print(colored(color, color.lower()))

Надеюсь, это ответило на ваш вопрос.

EDIT:

Я читал больше о Fore элементов, и я обнаружил, что вы можете получить словарь, содержащий каждый цвет как ключи, а его код как значения, поэтому вы можете сделать следующее, чтобы включить все цвета в Fore:

from colorama import Fore
from colorama import init as colorama_init

colorama_init(autoreset=True)

colors = dict(Fore.__dict__.items())

for color in colors.keys():
    print(colors[color] + f"{color}")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...