파이썬에서 컬러 텍스트를 터미널에 인쇄하려면 어떻게합니까?
질문
파이썬에서 컬러 텍스트를 터미널에 출력하려면 어떻게해야합니까?
답변
이렇게하면 어떤 플랫폼이 있는지에 따라 다소 다릅니다.이렇게하는 가장 일반적인 방법은 ANSI 이스케이프 시퀀스를 인쇄하는 것입니다.간단한 예제에서는 여기에 블렌더 빌드 스크립트의 Python 코드가 있습니다.
class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKCYAN = '\033[96m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
이와 같은 코드를 사용하려면 다음과 같은 작업을 수행 할 수 있습니다.
print(bcolors.WARNING + "Warning: No active frommets remain. Continue?" + bcolors.ENDC)
또는 파이썬 3.6+ 사용 :
print(f"{bcolors.WARNING}Warning: No active frommets remain. Continue?{bcolors.ENDC}")
이렇게하면 OS X, Linux 및 Windows (AnsIcon을 사용하는 경우 또는 VT100 에뮬레이션을 사용하도록 설정된 Windows 10에서는 Windows 10)를 포함한 Unixes에서 작동합니다.색상을 설정하고 커서를 이동시키는 ANSI 코드가 있습니다.
이와 함께 복잡해질 경우 (그리고 게임을 쓰는 것처럼 들리는 것처럼 들리는 것처럼 들리십시오),이를 위해 복잡한 부분을 많이 처리하는 "저주"모듈을 들여다보아야합니다.파이썬 저주 Howto는 좋은 소개입니다.
확장 된 ASCII (즉, PC가 아닌)를 사용하지 않는 경우, 127 미만의 ASCII 문자로 멈추고 '#'또는 '@'는 아마도 블록에 가장 적합한 내기 일 것입니다.터미널이 IBM 확장 ASCII 문자 집합을 사용하는지 확인할 수 있으므로 더 많은 옵션이 있습니다.문자 176, 177, 178 및 219는 "블록 문자"입니다.
"Dwarf Fortress"와 같은 일부 현대 텍스트 기반 프로그램은 텍스트 모드를 그래픽 모드로 에뮬레이트하고 고전적인 PC 글꼴의 이미지를 사용합니다.Dwarf Fortress Wiki See (사용자 제작 Tilesets)에서 사용할 수있는 이러한 비트 맵 중 일부를 찾을 수 있습니다.
텍스트 모드 데모 콘테스트에는 텍스트 모드에서 그래픽을 수행하기위한 더 많은 리소스가 있습니다.
답변
Python TermColor 모듈도 있습니다.사용법은 꽤 간단합니다.
from termcolor import colored
print colored('hello', 'red'), colored('world', 'green')
또는 파이썬 3에서 :
print(colored('hello', 'red'), colored('world', 'green'))
그러나 게임 프로그래밍 및 "컬러 블록"을 위해 충분히 정교하지 않을 수도 있습니다 ...
Windows에서 작동하는 ANSI 코드를 얻으려면 첫 번째 실행
os.system('color')
답변
대답은 파이썬에서 모든 교차 플랫폼 색칠을위한 컬러마입니다.
파이썬 2.7뿐만 아니라 Python 3.5+를 지원합니다.
그리고 2021 년 1 월 현재 그것은 유지됩니다.

답변
색상 / 스타일을 시작한 다음 문자열을 시작한 다음 '\ x1b [0m'로 색상 / 스타일 변경을 종료하는 문자열을 인쇄합니다.
print('\x1b[6;30;42m' + 'Success!' + '\x1b[0m')

다음 코드가있는 셸 텍스트에 대한 형식 옵션 테이블을 가져옵니다.
def print_format_table():
"""
prints table of formatted text format options
"""
for style in range(8):
for fg in range(30,38):
s1 = ''
for bg in range(40,48):
format = ';'.join([str(style), str(fg), str(bg)])
s1 += '\x1b[%sm %s \x1b[0m' % (format, format)
print(s1)
print('\n')
print_format_table()
밝게 어둠의 예 (완료)

어두운 온 광학 예 (부분)

답변
색상을 시작하는 문자열과 색상을 종료하는 문자열을 정의합니다.그런 다음 전면의 시작 문자열과 끝에있는 끝 문자열로 텍스트를 인쇄하십시오.
CRED = '\033[91m'
CEND = '\033[0m'
print(CRED + "Error, does not compute!" + CEND)
이것은 Zenburn 스타일의 색 구성표가있는 UrxVT에서 Bash에서 다음을 생성합니다.

실험을 통해 우리는 더 많은 색상을 얻을 수 있습니다 :

참고 : \ 33 [5m 및 \ 33 [6m 깜박임이 있습니다.
이렇게하면 풀 컬러 컬렉션을 만들 수 있습니다.
CEND = '\33[0m'
CBOLD = '\33[1m'
CITALIC = '\33[3m'
CURL = '\33[4m'
CBLINK = '\33[5m'
CBLINK2 = '\33[6m'
CSELECTED = '\33[7m'
CBLACK = '\33[30m'
CRED = '\33[31m'
CGREEN = '\33[32m'
CYELLOW = '\33[33m'
CBLUE = '\33[34m'
CVIOLET = '\33[35m'
CBEIGE = '\33[36m'
CWHITE = '\33[37m'
CBLACKBG = '\33[40m'
CREDBG = '\33[41m'
CGREENBG = '\33[42m'
CYELLOWBG = '\33[43m'
CBLUEBG = '\33[44m'
CVIOLETBG = '\33[45m'
CBEIGEBG = '\33[46m'
CWHITEBG = '\33[47m'
CGREY = '\33[90m'
CRED2 = '\33[91m'
CGREEN2 = '\33[92m'
CYELLOW2 = '\33[93m'
CBLUE2 = '\33[94m'
CVIOLET2 = '\33[95m'
CBEIGE2 = '\33[96m'
CWHITE2 = '\33[97m'
CGREYBG = '\33[100m'
CREDBG2 = '\33[101m'
CGREENBG2 = '\33[102m'
CYELLOWBG2 = '\33[103m'
CBLUEBG2 = '\33[104m'
CVIOLETBG2 = '\33[105m'
CBEIGEBG2 = '\33[106m'
CWHITEBG2 = '\33[107m'
다음은 테스트를 생성하는 코드입니다.
x = 0
for i in range(24):
colors = ""
for j in range(5):
code = str(x+j)
colors = colors + "\33[" + code + "m\\33[" + code + "m\033[0m "
print(colors)
x = x + 5
답변
다음은 Windows 10에서 기본적으로 작동하는 솔루션입니다.
OS.System ( "")과 같은 시스템 호출을 사용하여 명령 프롬프트 및 PowerShell에서 색상을 기본적으로 인쇄 할 수 있습니다.
import os
# System call
os.system("")
# Class of different styles
class style():
BLACK = '\033[30m'
RED = '\033[31m'
GREEN = '\033[32m'
YELLOW = '\033[33m'
BLUE = '\033[34m'
MAGENTA = '\033[35m'
CYAN = '\033[36m'
WHITE = '\033[37m'
UNDERLINE = '\033[4m'
RESET = '\033[0m'
print(style.YELLOW + "Hello, World!")
참고 : Windows는 시스템 호출 또는 모듈을 통해 ANSI 코드를 완전히 지원하지 않습니다.모든 텍스트 장식이 지원되는 것은 아니며 밝은 색상이 표시되지만 일반 색상과 동일합니다.
@ j-l 덕분에 더 짧은 방법을 찾아 봅니다.
TL; DR : OS.System ( "")을 추가하십시오.
출처:https://stackoverflow.com/questions/287871/how-do-i-print-colored-text-to-the-terminal-in-python
최근댓글