카테고리 없음

[window10] 파이썬 콘솔에 표시되는 텍스트 색 변경

dohyeon2 2022. 4. 28. 11:36

오늘은 파이썬 코드상에서 콘솔에 표시되는 텍스트의 색을 변경하는 방법을 정리하려한다. 

 

최종목표 

콘솔창에 출력되는 text 예시


콘솔창에 표시되는 텍스트색을 변경하는 것은 따로 파이썬 라이브러리로 하는 것은 아니고 

ANSI escape code를 사용하는 것이다. 순서는 다음과 같다. 

 

1. Escape 코드 작성

# 글자색 정의
class Colors:
    RED = '\033[31m'
    GREEN = '\033[32m'
    YELLOW = '\033[33m'
    BLUE = '\033[34m'
    MAGENTA = '\033[35m'
    CYAN = '\033[36m'
    WHITE = '\033[37m'
    RESET = '\033[0m'

# 글자 색 리스트로 저장
color_list = [Colors.RED, Colors.GREEN, Colors.YELLOW, Colors.BLUE, Colors.MAGENTA, Colors.CYAN, Colors.WHITE]


#random.chice 함수를 이용하여 리스트에서 랜덤하게 색 가져오기
print(random.choice(color_list)+ '데이터가 저장되었습니다!!!!' + Colors.RESET)
print(random.choice(color_list)+ '데이터가 저장되었습니다!!!!' + Colors.RESET)
print(random.choice(color_list)+ '데이터가 저장되었습니다!!!!' + Colors.RESET)
print(random.choice(color_list)+ '데이터가 저장되었습니다!!!!' + Colors.RESET)
print(random.choice(color_list)+ '데이터가 저장되었습니다!!!!' + Colors.RESET)

 '\033[' 이 기호는 Escape sequences 중에서 Control Sequence Introduce (CSI) 를 나타내는 코드이다. 

콘솔창에 어떤 특수한 명령을 주는 시작코드라고 이해하면 될것이다.

 

'\033[31m' = 빨강

'\033[32m' = 초록

'\033[33m' = 노랑

'\033[34m' = 파랑

'\033[35m' = 자홍

'\033[36m' = 청록

'\033[37m' = 하양

'\033[0m' = 리셋 

 

이때 리셋 명령어는 Terminal에서 색 변경을 시도한 뒤 초기값으로 reset 해주는 역할을 한다.

만약, 색 변경 후 Reset을 해주지 않으면, 이후의 모든 텍스트는 바로 이전에 바꿨던 색으로 계속 출력되게 된다.

 

2. 윈도우 레지스트리 편집

윈도우10 환경에서 위 코드를 돌려보면 다음과 같이 적용이 되지 않는다.

 

???? 뭐지???

 

  • 이는 레지스트리 편집기를 이용하면 간단하게 해결할 수 있다.
  • 윈도우 검색에 레지스트리 편집기를 검색하여 들어간다
  • HKEY_CURRENT_USER/Console 에 들어간다
  • 디렉토리 내에 마우스 오른쪽 클릭하여 새로만들기/DWORD(32비트)값 생성
  • 생성된 레지스트리 이름을 'VirtualTerminalLevel'로 변경한 뒤 값을 1로 변경 (16진수)

 

끝! 

다시 파이썬 코드를 실행해보면 다음과 같이 출력된다