질문
How do I output colored text to the terminal in Python?
파이썬에서 터미널에 색상이 지정된 텍스트를 출력하는 방법은 무엇인가요?
답변
이것은 당신이 어떤 플랫폼을 사용하는지에 따라 다릅니다. 이 작업을 수행하는 가장 일반적인 방법은 ANSI 이스케이프 시퀀스를 출력하는 것입니다. 간단한 예를 들어, Blender 빌드 스크립트에서 파이썬 코드를 살펴보겠습니다:
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)
또는 Python 3.6+에서는 다음과 같이 할 수 있습니다:
print(f"{bcolors.WARNING}Warning: No active frommets remain. Continue?{bcolors.ENDC}")
이는 OS X, Linux 및 Windows를 포함한 유닉스에서 작동합니다(ANSICON을 사용하거나 Windows 10에서 VT100 에뮬레이션을 활성화한 경우). 색상 설정, 커서 이동 등을 위한 ANSI 코드가 있습니다.
이를 복잡하게 만들려면(게임을 작성한다면 그렇게 만들어야 합니다) "curses" 모듈을 살펴보세요. 이 모듈은 이 작업의 복잡한 부분을 대신 처리합니다. Python Curses HowTO는 좋은 소개 자료입니다.
확장 ASCII를 사용하지 않는 경우(즉, PC가 아닌 경우), 127 이하의 ASCII 문자만 사용할 수 있으며, '#' 또는 '@'가 블록으로 사용하기 가장 좋은 선택입니다. IBM 확장 ASCII 문자 집합을 사용하는 터미널을 보장할 수 있다면 더 많은 옵션이 있습니다. 176, 177, 178 및 219는 "블록 문자"입니다.
"Dwarf Fortress"와 같은 일부 최신 텍스트 기반 프로그램은 그래픽 모드에서 텍스트 모드를 에뮬레이션하며, 클래식 PC 글꼴의 이미지를 사용합니다. Dwarf Fortress Wiki에서 이러한 비트맵 중 일부를 찾아 사용할 수 있습니다 (사용자 제작 타일셋 참조).
Text Mode Demo Contest에는 텍스트 모드에서 그래픽을 처리하는 데 더 많은 리소스가 있습니다.
댓글