Python

[Python - Tip] 파이썬 출력 메시지 글꼴 설정 - 글자색/배경색/굴게/기울임/밑줄

하룻강아지^^ 2020. 8. 11. 12:03
728x90
반응형

구현 방법

 - ANSI 코드를 사용 하는 방법 (ASCII, UTF-8, UNICODE 같은 인코딩 방식 중 하나)

 

 - 따라서, 아래 방법은 파이썬 고유의 방식은 아니고 bash schell이나 window cmd 등 에서도 사용 가능

 

 - 아래와 같이 원하는 표현을 출력해주는 Code number를 입력하고, 원하는 텍스트 입력

 

  >> \033[{Code number}m{Output text}

   예) print(\033[92mHello world!)

 

Python code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
print('\033[1m1.Hello DSegFault!\033[0m'# 1.Bold (raw ANSI)
print()
print('\033[1m'  + '2.Hello DSegFault!' + '\033[0m'# 2.Bold
print('\033[3m'  + '3.Hello DSegFault!' + '\033[0m'# 3.Italic
print('\033[4m'  + '4.Hello DSegFault!' + '\033[0m'# 4.Underline
print()
print('\033[92m' + '5.Hello DSegFault!' + '\033[0m'# 5.Text color
print('\033[102m'+ '6.Hello DSegFault!' + '\033[0m'# 6.Backgound color
print()
print('\033[92m' + '\033[1m' + '7.Hello DSegFault!' + '\033[0m'# 7.Bold + Text color
print('\033[1m'  + '\033[92m'+ '8.Hello DSegFault!' + '\033[0m'# 8.Bold + Text color
print()
print('\033[1m'  + '\033[92m'+ '9.Hello DSegFault!'# 9.Bold + Text color without Reset
print('10.Hello DsegFault!'# 10.Default after (9)
cs

 - 1. ANSI code와 output 출력 택스트를 이어 적어 표현

 - 2 / 3 / 4. Bold / Italic / Underline 표현

 - 5 / 6. 글자색(Foreground color) / 배경색(Backgroun color) 표현

 - 7 / 8. 두 개 이상의 표현도 코드를 이어 써주면 가능

 - 9/ 10. 글꼴 설정 후 "\033[0m" 리셋 표현을 하지 않을 경우 이후 출력 텍스트는 바로 이전 설정으로 출력

 

Output

Output with various ANSI code

 

주요 코드 넘버 정리

 - \033[{Code number}m

Code for Text shape (출처 - 아래 링크)

 

Code for text color (출처 - 아래 링크)

 

 - ASNI 코드가 구현 가능한 글자 표현, 색, 여러 기호 등에 관한 자세한 사항은 다음 링크 참조

  >> https://en.wikipedia.org/wiki/ANSI_escape_code

 

심화

 - 아래와 같이 클래스나 사용자 함수를 만들어서 보다 친숙하게 사용 가능

 

Python code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Stdout_Font:
    Reset      = '\033[0m'
    Bold       = '\033[1m'
    Italic     = '\033[3m'
    Underline  = '\033[4m'
 
    Red        = '\033[91m'
    Green      = '\033[92m'
    Yellow     = '\033[93m'
    Blue       = '\033[94m'
    Purple     = '\033[95m'
    Cyan       = '\033[96m'
 
    BG_Red     = '\033[101m'
    BG_Green   = '\033[102m'
    BG_Yellow  = '\033[103m'
    BG_Blue    = '\033[104m'
    BG_Purple  = '\033[105m'
    BG_Cyan    = '\033[106m'
 
print(Stdout_Font.Bold      + '2.Hello DSegFault!' + Stdout_Font.Reset) # 2.Bold
print(Stdout_Font.Italic    + '3.Hello DSegFault!' + Stdout_Font.Reset) # 3.Italic
print(Stdout_Font.Underline + '4.Hello DSegFault!' + Stdout_Font.Reset) # 4.Underline
print()
print(Stdout_Font.Cyan      + '5.Hello DSegFault!' + Stdout_Font.Reset) # 5.Text color
print(Stdout_Font.BG_Blue   + '6.Hello DSegFault!' + Stdout_Font.Reset) # 6.Backgound color
print()
print(Stdout_Font.Bold + Stdout_Font.Red + '7.Hello DSegFault!' + Stdout_Font.Reset) # 7.Bold + Text color
cs

 

Output

Output using user defined class with ANSI code

728x90
반응형