我是靠谱客的博主 怕孤独马里奥,最近开发中收集的这篇文章主要介绍python的curses模块使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

参考:http://docs.python.org/2/howto/curses.html


curses(早期名称,现在是ncurses)包的封装,用于实现终端无关的控制台输出以及输入处理。curses包支持各种终端,从古老的VT100到LINUX控制台到X11终端如xterm或rxvt。curses把终端当作一个矩阵,即单元格的集合,每一个ascii字符代表最小的char-cell。注意curses是不支持windows平台的,不过这里 http://www.lfd.uci.edu/~gohlke/pythonlibs/#curses 有一个非正式curses包可以尝试,另外windows平台可以使用Console模块。

python的curses模块是对curses包的C语言的简单封装,并对curses的调用做了简化,将C接口中的addstr, mvaddstr, mvwaddstr三个函数合并成了一个单独的addstr函数。

以下是一个简单的例子:

import curses

stdscr = curses.initscr()

def display_info(str, x, y, colorpair=1):
    '''使用指定的colorpair显示文字'''
    global stdscr
    stdscr.addstr(y, x, str, curses.color_pair(colorpair))
    stdscr.refresh()

def get_ch_and_continue():
    '''演示press any key to continue'''
    global stdscr
    #设置nodelay,为0时会变成阻塞式等待
    stdscr.nodelay(0)
    #输入一个字符
    ch=stdscr.getch()
    #重置nodelay,使得控制台可以以非阻塞的方式接受控制台输入,超时1秒
    stdscr.nodelay(1)
    return True

def set_win():
    '''控制台设置'''
    global stdscr
    #使用颜色首先需要调用这个方法
    curses.start_color()
    #文字和背景色设置,设置了两个color pair,分别为1和2
    curses.init_pair(1, curses.COLOR_GREEN, curses.COLOR_BLACK)
    curses.init_pair(2, curses.COLOR_RED, curses.COLOR_BLACK)
    #关闭屏幕回显
    curses.noecho()
    #输入时不需要回车确认
    curses.cbreak()
    #设置nodelay,使得控制台可以以非阻塞的方式接受控制台输入,超时1秒
    stdscr.nodelay(1)

def unset_win():
    '''控制台重置'''
    global stdscr
    #恢复控制台默认设置(若不恢复,会导致即使程序结束退出了,控制台仍然是没有回显的)
    curses.nocbreak()
    curses.echo()
    #结束窗口
    curses.endwin()


if __name__=='__main__':
    try:
        set_win()
        display_info('Hola, curses!')
        display_info('Press any key to continue...')
        get_ch_and_continue()
    except Exception,e:
        raise e
    finally:
        unset_win()




最后

以上就是怕孤独马里奥为你收集整理的python的curses模块使用的全部内容,希望文章能够帮你解决python的curses模块使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部