【问题标题】:How to clear the screen in Python?如何在 Python 中清除屏幕?
【发布时间】:2019-01-28 23:43:55
【问题描述】:

我知道还有很多其他问题都在问同样的问题,但没有一个对我有用,我无法评论寻求帮助。他们只是不适合我。我已经尝试了各种各样的东西!我在 Mac 上,使用 Pycharm 和我认为是最新的 Python (v. 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 上进行了所有尝试。我完全拒绝 \n 100 次。有什么建议么? :)

【问题讨论】:

  • 编辑:只是重新阅读并看到你正在使用 mac。 os.system('clear') 在我的 macbook pro 上为我工作。我相信它只有在你从终端运行 python shell 而不是在 IDLE 或 PyCharm 中运行时才有效

标签: python python-3.x console pycharm


【解决方案1】:

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

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

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

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

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

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

import click
click.clear()

【讨论】:

  • 总体来说点击非常棒 :-)
  • 我似乎没有点击模块:/ 但这似乎是一个相对简单的解决方案!我会尝试点击
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 2015-08-17
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多