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}!")
'파이썬' 카테고리의 다른 글
[python] python,environment-variables,파이썬,환경 변수 (0) | 2022.08.22 |
---|---|
[python] 문자열 "Jun 1 2005 1:33PM"을 날짜/시간으로 변환 (0) | 2022.08.22 |
[python] 목록을 동일한 크기의 청크로 분할하려면 어떻게 합니까? (0) | 2022.08.22 |
[python] Python에서 수동으로 예외 발생(throw) (0) | 2022.08.22 |
[python] Matplotlib으로 그린 그림의 크기를 어떻게 변경합니까? (0) | 2022.08.22 |