파이썬

[python] 터미널에 컬러 텍스트를 인쇄하려면 어떻게 합니까?

zooheon 2022. 8. 22. 23:13
반응형

Python에서 터미널에 컬러 텍스트를 어떻게 출력합니까?

 

이것은 어느 플랫폼에 있는지에 따라 다소 다릅니다. 이를 수행하는 가장 일반적인 방법은 ANSI 이스케이프 시퀀스를 인쇄하는 것입니다. 간단한 예를 들어 다음은 Blender 빌드 스크립트 의 일부 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)

또는 Python 3.6 이상:

print(f"{bcolors.WARNING}Warning: No active frommets remain. Continue?{bcolors.ENDC}")

이것은 OS X, Linux 및 Windows를 포함한 유닉스에서 작동합니다( ANSICON 을 사용하는 경우 또는 VT100 에뮬레이션 을 활성화한 경우 Windows 10 ). 색상 설정, 커서 이동 등을 위한 ANSI 코드가 있습니다.

이것으로 복잡해지면(그리고 게임을 작성하는 것처럼 들립니다) " curses " 모듈을 살펴보아야 합니다. 이 모듈은 이것의 복잡한 부분을 많이 처리합니다. Python Curses HowTO좋은 소개서입니다.

확장 ASCII를 사용하지 않는 경우(즉, PC가 아닌 경우) ASCII 문자가 127 미만인 경우에는 '#' 또는 '@'가 블록에 가장 적합할 것입니다. 터미널이 IBM 확장 ASCII 문자 세트 를 사용하고 있는지 확인할 수 있다면 더 많은 옵션이 있습니다. 문자 176, 177, 178 및 219는 "블록 문자"입니다.

"Dwarf Fortress"와 같은 일부 최신 텍스트 기반 프로그램은 그래픽 모드에서 텍스트 모드를 에뮬레이트하고 클래식 PC 글꼴의 이미지를 사용합니다. Dwarf Fortress Wiki 에서 사용할 수 있는 이러한 비트맵 중 일부를 찾을 수 있습니다 ( 사용자 제작 타일셋 참조).

텍스트 모드 데모 대회 에는 텍스트 모드에서 그래픽 작업을 위한 더 많은 리소스가 있습니다.

 

Python termcolor 모듈있습니다. 사용법은 매우 간단합니다.

from termcolor import colored

print colored('hello', 'red'), colored('world', 'green')

또는 Python 3:

print(colored('hello', 'red'), colored('world', 'green'))

그러나 게임 프로그래밍과 수행하려는 "색깔의 블록"에는 충분히 정교하지 않을 수 있습니다.

Windows에서 작동하는 ANSI 코드를 얻으려면 먼저 다음을 실행하십시오.

os.system('color')

 

대답은 Python의 모든 플랫폼 간 색칠을 위한 Colorama 입니다.

Python 3.5+ 및 Python 2.7을 지원합니다.

그리고 2021년 1월 현재 유지하고 있습니다.

예제 코드:

from colorama import Fore
from colorama import Style

print(f"This is {Fore.GREEN}color{Style.RESET_ALL}!")

예시 스크린샷: 예시 스크린샷

 

반응형