Python隐藏已经打印的文本

标签 python python-3.x new-window tui

我正在创建一个简单的两人棋盘游戏,每个玩家必须将棋子放在自己的棋盘上。我想做的是:

  • 为两个玩家打开一个新的终端窗口(无论程序在哪个操作系统上运行),以便棋盘保存在变量中,但另一个玩家无法向上滚动以查看他们放置棋子的位置。

  • 完全清除当前终端,以便两个玩家都无法滚动并看到另一个玩家的棋盘。我知道 unix 'clear' 命令,但它没有达到我想要的效果,并且不适用于所有操作系统(尽管这可能是我必须牺牲才能获得工作解决方案的东西)

我已尝试清除屏幕,但无法完全删除所有文本。我没有偏好;哪种方法更容易。另外,如果使用我没有想到的不同方法会更容易,那么欢迎所有其他建议。提前致谢!

编辑:其他解决方案看起来文本已被清除,但用户仍然可以向上滚动并查看已清除的文本。我想要一种方法来删除用户可以看到此文本的任何方式。

编辑2:请阅读其他答案和评论,因为它们提供了有关整个主题的大量信息。特别感谢@zondo。

最佳答案

考虑使用可移植终端处理库。它们抽象了常见任务的系统细节,例如删除“屏幕”(即终端),或将输出放置在“屏幕”上的特定位置(同样,意味着文本终端)。然而,为了有效地使用这样的库,您通常必须切换到在屏幕上生成输出的风格,而不是天真地打印字符串。

curses就是这样一个库(基于 C 库 ncurses )并包含在 Python 标准库中。要开始使用,请务必查看 curses tutorial在 Python 官方文档中。

关于Python隐藏已经打印的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35813667/

相关文章:

python - lxml:将命名空间添加到输入文件

python - IP 地址的 Tkinter 条目验证

python - 如何将字符串附加到 Pandas 中的 int/float 数据帧

hyperlink - 在新选项卡中打开 Disqus 线程中的链接

德尔福内网 : Is there a way to open an url in a new tab without the popup behavior?

python - 如何在保持元组顺序的同时,根据元组的索引值从列表中删除重复的元组?

python - Django 'null value in column'

python - def 函数 python - 帮助我了解语法

使用单独(顺序)Python 进程的 Python Nose 单元测试

javascript - 将表单提交到新窗口/标签