본문 바로가기
대동단결 Python

ANSI 화면제어

by 즐거운 지니 2020. 6. 6.
반응형

파이썬으로 프로그램을 만들 때

옛날 방식 (텍스트모드) 로 출력할 경우가 있다.

이 때, 화면의 특정 위치에 특정 색으로 으로 출력하고 싶다면 다음과 같이 하자.

모듈설치

1
pip install colorama
cs

소스작성

1
2
3
4
5
6
7
8
9
10
11
12
from colorama import *
 
init()
print(f'{Fore.WHITE}some red text {Back.YELLOW} 노랑배경글씨')
print(Back.GREEN + 'and with a green background')
print(Style.DIM + 'and in dim text')
print(Style.NORMAL + 'and in dim text')
print(Style.BRIGHT + 'and in dim text')
print(Style.RESET_ALL)
print('back to normal now')
print('\033[31m' + 'some red text')
 
cs

모듈 colorama 는 화면에 출력되는 text의 컬러를 제어하는데 유용하다. 

화면의 위치를 제어하기에는 제한적이나, 잘 쓰면 왠만한 포멧은 만들 수 있다. 

사용 방법은 https://pypi.org/project/colorama/ 을 참조하라.

방법을 간단히 정리하면,

print문을 통해 화면에 텍스트를 출력하는데, 출력할 스트링 적소에 안시코드를 삽입하면 된다. 

아래에 정리한 인시코드에서 'ESC'는 '\033'으로 치환하여 사용하면 된다. 

ESC [ 0 m       # reset all (colors and brightness)
ESC [ 1 m       # bright
ESC [ 2 m       # dim (looks same as normal brightness)
ESC [ 22 m      # normal brightness

# FOREGROUND:
ESC [ 30 m      # black
ESC [ 31 m      # red
ESC [ 32 m      # green
ESC [ 33 m      # yellow
ESC [ 34 m      # blue
ESC [ 35 m      # magenta
ESC [ 36 m      # cyan
ESC [ 37 m      # white
ESC [ 39 m      # reset

# BACKGROUND
ESC [ 40 m      # black
ESC [ 41 m      # red
ESC [ 42 m      # green
ESC [ 43 m      # yellow
ESC [ 44 m      # blue
ESC [ 45 m      # magenta
ESC [ 46 m      # cyan
ESC [ 47 m      # white
ESC [ 49 m      # reset

# cursor positioning
ESC [ y;x H     # position cursor at x across, y down
ESC [ y;x f     # position cursor at x across, y down
ESC [ n A       # move cursor n lines up
ESC [ n B       # move cursor n lines down
ESC [ n C       # move cursor n characters forward
ESC [ n D       # move cursor n characters backward

# clear the screen
ESC [ mode J    # clear the screen

# clear the line
ESC [ mode K    # clear the line

반응형

'대동단결 Python' 카테고리의 다른 글

파이썬으로 웹서비스 하기  (0) 2020.06.28
Python 에서 R 스크립트 실행  (0) 2020.06.24
pandas 기초  (0) 2020.05.06
파이썬 기초  (0) 2020.05.06
자동라인매매알고리즘  (0) 2020.05.05

댓글