首页 > 解决方案 > 如何清除 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.

标签: pythonpython-3.xpython-idle

解决方案


这对于 IDLE 的 Python shell 是不可能的。

文档中

Shell 从不丢弃输出。

制表符使以下文本在下一个制表位之后开始。(它们每 8 个“字符”出现一次)。换行符会导致后面的文本出现在新行上。其他控制字符被忽略或显示为空格、框或其他内容,具体取决于操作系统和字体。

这意味着它是一个非常基本的外壳,以线性方式输出所有文本。你需要在不同的 shell 中运行 Python 来完成你想要的。


推荐阅读