제목:

파이썬 ncurses 모듈 간단한 예제

날짜: Posted on

※ 이 코드는 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... 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다