如何在Python中清除屏幕?

问题描述 投票:0回答:2

我知道还有很多其他问题要问同样的事情,但是没有一个问题对我有用,而且我不能发表评论寻求帮助。他们只是不适合我。我尝试过各种各样的事情!我在Mac上,使用Pycharm和我认为最新的Python(第3节),但我不确定。

1)Cmd + L不起作用。

2)

import os
clear = lambda: os.system('clear')
clear()
well = input("The screen is not clear.")

说“未设置TERM环境变量”。

3)

absolutely_unused_variable = os.system("clear")

说同样的TERM事。

4)该

    import subprocess, platform

    if platform.system()=="Windows":
        subprocess.Popen("cls", shell=True).communicate()
    else: #Linux and Mac
        print("\033c", end="")

在最后一行为我打印一个c。

我究竟做错了什么?我尝试了以上所有内容,使用了clear和cls的所有可能组合。为了确保它不是我的Pycharm,我在IDLE Python 3.7.2上尝试了所有。我彻底拒绝了100次。有什么建议? :)

python python-3.x console pycharm
2个回答
1
投票

在类Unix系统中,控制台窗口是一个字符设备,可以是GUI窗口和实​​际终端中的任何东西。不同类型的“设备”需要不同的方法来清除屏幕。通常,当在终端中启动shell时,TERM环境变量被设置为一个值,该值指示它是什么类型的终端,并且清除屏幕的例程咨询这个以确定要写入哪些字符以清除它。

如果您在Mac终端窗口中尝试第一个解决方案,它将清除屏幕。如果你在没有使用Python的情况下尝试它,但是取消设置TERMINAL环境变量,那么即使系统'clear'命令也不知道如何清除屏幕:

$ echo $TERM
xterm-256color
$ unset TERM
$ clear
TERM environment variable not set.

您遇到的问题不是特定于Python,而是PyCharm终端窗口,它似乎没有设置此环境变量。

可能是PyCharm终端窗口不支持ANSI或其他序列来清除屏幕。 does appear to support至少有一些彩色文本的转义序列。可能是它没有正确设置环境变量。您可以在终端中尝试export TERM=ansi,然后尝试运行您的clear命令以查看是否有效。

您可能尝试的另一件事是使用Click以独立于设备和平台的方式清除屏幕。一般来说,点击非常棒。例如,即使在终端中取消设置TERM后,以下内容也适用于我:

import click
click.clear()

0
投票

我相信这个主题与PyCharm更相关,您可以在PyCharm中创建自己的键盘快捷键,以清除屏幕,就像它在控制台或cmd上一样:

  1. 打开Pycharm首选项
  2. 搜索:“清除所有”
  3. 双击“全部清除” - >添加键盘快捷键(将其设置为CMD + L或任何您想要的)
  4. 确保在使用快捷方式之前单击控制台(或“运行”窗口),否则它不会执行任何操作。
© www.soinside.com 2019 - 2024. All rights reserved.