python - 如何清除 IDLE shell 中所有文本的屏幕?
问题描述
我想为 python 游戏创建一个基于文本的 GUI。我打算在多行文本之间移动一个字符。经过数小时的在线搜索,我发现的解决方案不适用于此。我想要一些可以擦除屏幕上所有文本的东西,所以我可以重新打印同一行,但字符移动了一个空格。需要明确的是,我要擦除的屏幕是您在 IDLE 中点击“运行模块”时出现的屏幕。此外,我无法导入任何外部库,因为出于某种原因,它在我的计算机上已损坏。
我试过ctrl+l。它完全没有做任何事情。我试过使用 os.system('cls') (我在 Windows 上)它打开命令提示符,清除它,然后关闭它。不是我需要的。print ("\n" * 50) 有效,但不清除屏幕。屏幕必须清晰,我不想打印一百万行新行。
这是我的代码:
import sys
valone = 5
valtwo = 5
# create line of text
sys.stdout.write(" a " * valone + " t " + " a " * valtwo)
# move t character 1 space
valone = valone -1
valtwo = valtwo + 1
# clear screen and redraw line with t moved 1 space.
解决方案
这对于 IDLE 的 Python shell 是不可能的。
从文档中:
Shell 从不丢弃输出。
和
制表符使以下文本在下一个制表位之后开始。(它们每 8 个“字符”出现一次)。换行符会导致后面的文本出现在新行上。其他控制字符被忽略或显示为空格、框或其他内容,具体取决于操作系统和字体。
这意味着它是一个非常基本的外壳,以线性方式输出所有文本。你需要在不同的 shell 中运行 Python 来完成你想要的。
推荐阅读
- javascript - 如何使用网络库从函数外部获取更新值
- reactjs - Reactjs 路由器转换搞砸了
- leaflet - 当我们点击集群时,如何使传单地图像冠状病毒一样显示
- java - 如何为特定测试加载springboot自定义测试配置
- ssms - 2 SSMS已安装,如何卸载?
- python - 使用生成器使列表脱离列表理解
- asp.net - 从另一个项目调用并显示 HTTP 错误 204 时,API 未发送任何数据
- coldfusion - 使用冷融合连接到谷歌广告 API
- javascript - 在 html 中显示值
- office365 - MS Graph API 中 Office 365 用户活动报告中已删除标志的用途是什么