如何在Python中清除屏幕?

时间:2019-01-28 23:43:55

标签: python python-3.x console pycharm

我知道还有很多其他问题要问同样的事情,但是这些问题都不适合我,因此我无法评论寻求帮助。他们只是不为我工作。我尝试了各种事情!我在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")

说同样的术语。

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上尝试了全部。我完全拒绝\ n 100次。有什么建议么? :)

2 个答案:

答案 0 :(得分:1)

在类似Unix的系统中,控制台窗口是字符设备,可以是GUI窗口或实际终端中的任何内容。不同类型的“设备”需要不同的方法来清除屏幕。通常,当在终端中启动外壳程序时,TERM环境变量将被设置为一个值,该值指示终端是什么类型的终端,并且清除屏幕的例程会参考此命令,以确定要写入的字符以清除它。 / p>

如果在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()

答案 1 :(得分:0)

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

  1. 打开Pycharm偏好设置
  2. 搜索:“全部清除”
  3. 双击“全部清除”->添加键盘快捷键(将其设置为CMD + L或您想要的任何值)
  4. 在使用快捷方式之前,请确保先单击控制台(或“运行”窗口),否则它什么也不会做。