※ 이 코드는 ncurses API가 있는 유닉스 기반 운영체제에서만 동작합니다. 혹시 사용하시는 운영체제가 윈도우즈라면, 리눅스를 가상 머신이나 라즈베리 파이 등에 설치해 놓고 실험하시기 바랍니다.
이 포스트에서는 파이썬에서 ncurses 모듈을 다루는 간단한 예제를 수록합니다.
우선, 아래 코드를 봅시다.
#!/usr/bin/env python3 #-*- coding = utf-8 -*- import curses def main(stdscr): # Color Pair curses.use_default_colors() curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLACK) curses.init_pair(2, curses.COLOR_YELLOW, curses.COLOR_BLACK) curses.init_pair(3, curses.COLOR_CYAN, curses.COLOR_BLACK) # Print stdscr.addstr(0, 0, "타잔이 ", curses.color_pair(1) | curses.A_BOLD) stdscr.addstr("10원", curses.color_pair(2) | curses.A_BOLD) stdscr.addstr("짜리 팬티를 입고", curses.color_pair(1) | curses.A_BOLD) stdscr.addstr(1, 0, "20원", curses.color_pair(2) | curses.A_BOLD) stdscr.addstr("짜리 칼을 차고 노래를 한다. ", curses.color_pair(1) | curses.A_BOLD) stdscr.addstr("아아아~", curses.color_pair(3) | curses.A_BOLD) stdscr.addstr(3, 0, "Press enter key...") stdscr.refresh() while True: try: k = stdscr.getkey() if k == "\n": break except KeyboardInterrupt: break if __name__ == "__main__": curses.wrapper(main)
4번 줄에서 curses 모듈을 import합니다. ncurses API를 사용하기 위해서 필수입니다.
9번 줄부터 11번 줄까지는 색을 지정하기 위한 쌍을 정의합니다. 1번째 색상쌍은 검은 배경에 흰 글자, 2번째 색상쌍은 검은 배경에 노란 글자, 3번째 색상쌍은 검은 배경에 청록 글자입니다.
14번 줄부터 22번 줄까지는 텍스트를 추가합니다. 좌표를 지정하면 그 좌표로 커서를 이동해서 글씨를 쓰고, 지정하지 않으면 커서가 있는 그 자리에 글씨를 씁니다. 주의할 점은 좌표의 y와 x는 0부터 시작한다는 점입니다. 텍스트 뒤쪽은 미리 정의해 놓은 색상쌍을 지정합니다. 뒤에 curses.A_BOLD를 추가하면 강조 효과가 생깁니다. 대개는 밝아집니다.
23번 줄은 변경을 반영합니다.
25번 줄부터 30번 줄까지는 Enter 키를 눌러야 빠져나가게 하는 부분입니다. Ctrl-C 키를 눌러 인터럽트를 시도해도 마찬가지로 빠져나가게끔 설계됩니다.
이 프로그램은 다음과 같이 실행됩니다.
타잔이 10원짜리 팬티를 입고 20원짜리 칼을 차고 노래를 한다. 아아아~ Press enter key...