Цветная печать дает префикс «[31 м» - PullRequest
1 голос
/ 06 июня 2019

Я пытаюсь напечатать цветной текст с помощью Colorama, и я попробовал это:

from colorama import Fore, Back, Style

print(Fore.RED + 'some red text')
print(Back.GREEN + 'and with a green background')
print(Style.DIM + 'and in dim text')
print(Style.RESET_ALL)
print('back to normal now')

Но он возвращает это:

[31msome red text
[42mand with a green background
[2mand in dim text
[0m
back to normal now

Когда я хочу:

  • Первая строка красного цвета
  • Второй с зеленым фоном
  • Третий тёмный текст
  • А потом все возвращается в норму.

Я использую python 3.7.3 с последней загрузкой colorama из pip на компьютере с Windows 10.

.

РЕДАКТИРОВАТЬ: мой вопрос был помечен как дубликат, 6 уже отправлено ответов , поэтому вот что произойдет, если я их использую:

  1. Ответ от hrbdg поручил запустить этот код:
from colorama import init, Fore, Back, Style

init(convert=True)

print(Fore.RED + 'some red text')

Для меня это возвращает some red text в стандартном синем цвете.

  1. По словам Шона Линча, мне нужно это исправить. Поэтому я скачиваю Ансикон и следую его инструкциям. Затем я печатаю:
from colorama import Fore, Back, Style

print(Fore.RED + 'some red text')
print(Back.GREEN + 'and with a green background')
print(Style.DIM + 'and in dim text')
print(Style.RESET_ALL)
print('back to normal now')

Опять получаю:

[31msome red text
[42mand with a green background
[2mand in dim text
[0m
back to normal now
  1. Ответ от babrar поручил запустить этот код:
from colorama import init
from termcolor import colored

init()

print(colored('Hello, World!', 'green', 'on_red'))

Для меня это возвращает [41m[32mHello, World![0m синим цветом.

  1. Пользователь sorin предлагает использовать тендо.colorer, потому что у меня нет ANSI в Windows. Поэтому я скачиваю тендо через пипс. По его словам: «просто импортируя его перед вашим кодом, это решит проблему». Итак, я запускаю этот код:
from colorama import Fore, Back, Style

from tendo import colorer

print(Fore.RED + 'some red text')
print(Back.GREEN + 'and with a green background')
print(Style.DIM + 'and in dim text')
print(Style.RESET_ALL)
print('back to normal now')

Но это возвращается ... удивительно [31mMy Text is Red, и, надеюсь, у меня сейчас нет вируса на моем компьютере.

  1. Пользователь kamzur говорит, что Майк, первоначальный автор вопроса, должен использовать только один импорт в одной строке вместо трех. Это не полезно.

  2. Пользователь tcp2008 рекомендует запустить:

import colorama

colorama.init()
print colorama.Fore.GREEN + " Hey, im green! "

Что возвращает [32m Hey, im green!.

...