curses 是什么?¶

curses 库为基于文本的终端提供了独立于终端的屏幕绘制和键盘处理功能;这些终端包括 VT100,Linux 控制台以及各种程序提供的模拟终端。显示终端支持各种控制代码以执行常见的操作,例如移动光标,滚动屏幕和擦除区域。不同的终端使用相差很大的代码,并且往往有自己的小怪癖。

在普遍使用图形显示的世界中,人们可能会问“为什么自找要麻烦”?毕竟字符单元显示终端确实是一种过时的技术,但是在某些领域中,能够用它们做花哨的事情仍然很有价值。一个小众市场是在不运行 X server 的小型或嵌入式 Unix 上。另一个是在提供图形支持之前,可能需要运行的工具,例如操作系统安装程序和内核配置程序。

curses 库提供了相当基础的功能,为程序员提供了包含多个非重叠文本窗口的显示的抽象。窗口的内容可以通过多种方式更改---添加文本,擦除文本,更改其外观---以及curses库将确定需要向终端发送哪些控制代码以产生正确的输出。 curses并没有提供诸多用户界面概念,例如按钮,复选框或对话框。如果需要这些功能,请考虑用户界面库,例如 Urwid 。

curses 库最初是为BSD Unix 编写的。 后来 AT&T 的Unix System V 版本加入了许多增强功能和新功能。如今BSD curses已不再维护,被ncurses取代,ncurses是 AT&T 接口的开源实现。如果使用的是 Linux 或 FreeBSD 等开源Unix系统,则几乎肯定会使用ncurses。由于大多数当前的商业Unix版本都基于System V代码,因此这里描述的所有功能可能都可用。但是,某些专有Unix所带来的较早版本的curses可能无法支持所有功能。

Windows 版本的 Python 不包含 curses 模块。提供了一个名为 UniCurses 的移植版本。也可以尝试使用 Fredrik Lundh 编写 the Console module,它使用了与curses不相同的API,但提供了可光标定位的文本输出,完全支持鼠标和键盘输入。

Python 的 curses 模块¶

此 Python 模块相当简单地封装了 curses 提供的 C 函数;如果你已经熟悉在 C 语言中使用 curses 编程,把这些知识转移的 Python 是非常容易的。最大的差异在于 Python 中的接口通过把不同的 C 函数合并来让事情变得更简单,比如 addstr()、mvaddstr() 和 mvwaddstr() 三个 C 函数被并入 addstr() 这一个方法。下文中会描述更多的细节。

本 HOWTO 是关于使用 curses 和 Python 编写文本模式程序的概述。它并不被设计为一个 curses API 的完整指南;如需完整指南,请参见 ncurses 的 Python 库指南章节和 ncurses 的 C 手册页。相对地,本 HOWTO 将会给你一些基本思路。

python curses_用 Python 进行 Curses 编程相关推荐

  1. 用 Python 进行 Curses 编程

    curses 是什么? curses 库为基于文本的终端提供了独立于终端的屏幕绘制和键盘处理功能:这些终端包括 VT100,Linux 控制台以及各种程序提供的模拟终端.显示终端支持各种控制代码以执行 ...

  2. python curses_简单的Python的curses库使用教程

    curses 库 ( ncurses ) 提供了控制字符屏幕的独立于终端的方法.curses 是大多数类似于 UNIX 的系统(包括 Linux)的标准部分,而且它已经移植到 Windows 和其它系 ...

  3. 【Python随记】:curses 库的快速入门

    文章目录 curses 简介 Python curses 模块 curses 库安装方法 Windows 下安装 Linux 下安装 curses 简介 curses 是一个在Linux/Unix下广 ...

  4. 没学过编程可以自学python吗-完全没学过编程的人学习 Python前应该掌握些什么?...

    在众多高大上的自学指导中,尝试做一股清流,把要讲清楚的都讲清楚,除了一堆资料之外,你能在学之前就有一个非常明显的结果倾向. 本文以<小白带你学Python>为内容方向,试图在繁杂的信息里, ...

  5. python界面设置-PYTHON图形化操作界面的编程七__创建菜单

    PYTHON图形化操作界面的编程七__创建菜单 十八.创建菜单 1.水平菜单的创建 创建菜单需要多条语句,所以这里通过实例来说明水平菜单的创建方法: 下面的语句可以在窗口中添加水平菜单,其中前四行语句 ...

  6. python好学吗 老程序员-使用 Python 会降低程序员的编程能力吗?

    某些情况下会降低编程能力,某些情况下会提升编程能力,要看你怎么理解"编程能力". 1.使用 Python 会降低程序员的编程能力,这个假设成立的情形 如果强行要说使用Python可 ...

  7. python工程师证书-【一个合格的Python工程师需要达到怎样的编程水平】

    如何才算精通Python?在Python学习中,我们都有哪些误区?相信你看完这篇文章都会得到解答. 如果不能,我希望这篇回答能让你意识到自己Python知识还存在哪些不足,在之后的学习中,从哪些方面去 ...

  8. python基础学习[python编程从入门到实践读书笔记(连载一)]

    写在前面:本文来自笔者关于<python编程从入门到实践>的读书笔记与动手实践记录. 程序员之禅 文章目录 02变量和简单数据类型 03 列表简介 04 操作列表 05 if语句 06 字 ...

  9. python函数式编程读取数据时出现错误_写 Python 代码不可不知的函数式编程技术...

    原标题:写 Python 代码不可不知的函数式编程技术 选自 Medium 作者:Raivat Shah 参与:魔王.Jamin 本文对 Python 中的函数式编程技术进行了简单的入门介绍. 近来, ...

最新文章

  1. Android数据库 之 SQLite数据库
  2. PyTorch称霸学界,TensorFlow固守业界,ML框架之争将走向何方?
  3. 线程池2--创建线程
  4. 集装箱计算机跟踪管理方式,集装箱运输第二章集装箱及其箱务管理(图文)解析.ppt...
  5. Linux日志安全分析技巧
  6. C语言学习笔记---动态内存分配
  7. 【优化算法】斑点鬣狗优化算法(SHO)【含Matlab源码 1463期】
  8. java html报表设置_快逸报表中html事件属性的使用
  9. 计算机中缺失freeimage.dll,FreeImage.dll
  10. Navicat中文版破解安装
  11. 群晖修改php文件系统,群晖6.2版本修改eSATA挂载NTFS硬盘设置方法
  12. 51单片机的红外计数器设计
  13. 《C程序员:从校园到职场》出版预告(3):从“阳春白雪”到“下里巴人”
  14. MATLAB分析频谱
  15. 操作系统-逻辑地址转换为物理地址Java实现
  16. 烧钱数亿后,趣店罗敏的预制菜业务从兴到衰
  17. ifconfig command not found
  18. android socket代理app,android socket客户端app
  19. 小学计算机课的评语,小学信息技术听课评语
  20. 关于手机端input获取焦点呼起键盘背景图片挤压解决方案

热门文章

  1. MMD_2b_NearestNeighborLearning
  2. 解锁oracle数据库的 scott用户,亲身测试。success
  3. 数字图像处理中常用图像分割算法有哪些?
  4. php 类似微信下拉菜单,微信小程序实现下拉框(附代码)
  5. python 归一化_python 归一化
  6. JAVA数组编程教程_Java语言编程基础:数组
  7. db2安装包v10.5_LINUX安装db2V10.5步骤
  8. python人脸识别svd_机器学习-svd实现人脸识别
  9. cudart64_100.dll not found
  10. 二、进程的状态与转换