【问题标题】:How do programs overwrite previous lines of output?程序如何覆盖以前的输出行?
【发布时间】:2013-08-17 10:14:57
【问题描述】:

vimtopalsamixer 等程序会输出多行文本,并以某种方式操纵已写入的文本行。

我知道将\r 字符写入stdout,它将光标返回到行首,允许覆盖当前行,但不能覆盖之前的任何行。

这些程序做了什么来让这些更高级的 UI 具有花哨的终端操作?在我的情况下,我正在寻找 Python 解决方案,但任何一般信息都将不胜感激。

【问题讨论】:

    标签: python terminal


    【解决方案1】:

    您需要查看 python curses 库。

    curses 模块提供了一个到 curses 库的接口, 便携式高级终端处理的事实标准。

    虽然 curses 在 Unix 环境中使用最广泛,但版本是 可用于 DOS、OS/2 和可能的其他系统。这个 扩展模块旨在匹配 ncurses 的 API,一个 托管在 Linux 和 BSD 变体上的开源 curses 库 Unix。

    【讨论】:

    • 迷人,看起来不错。这是 nanotop 等主要 C 程序使用的吗?
    • 底层库是。
    猜你喜欢
    • 2023-03-17
    • 1970-01-01
    • 2016-02-02
    • 2014-12-22
    • 1970-01-01
    • 2020-11-19
    • 2016-10-22
    • 1970-01-01
    相关资源
    最近更新 更多