Как очистить экран в Python? - PullRequest
0 голосов
/ 29 января 2019

Я знаю, что есть много других вопросов, задающих то же самое, но ни один из них не работает для меня, и я не могу комментировать просьбу о помощи.Они просто не работают для меня.Я перепробовал все виды вещей!Я на 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="")

печатает для меня переменную в последней строке.

Что я делаю не так?Я попробовал все вышеперечисленное, используя все возможные комбинации clear и cls.Чтобы убедиться, что это не мой Pycharm, я попробовал все на IDLE Python 3.7.2.Я категорически отказываюсь \ n 100 раз.Какие-либо предложения?:)

Ответы [ 2 ]

0 голосов
/ 29 января 2019

В Unix-подобных системах консольное окно - это символьное устройство, которое может быть любым из окна графического интерфейса пользователя фактическим терминалом.Разные типы «устройств» требуют разных методов очистки экрана.Обычно, когда оболочка запускается в терминале, для переменной среды TERM устанавливается значение, указывающее, какой это тип терминала, и процедуры, очищающие экран, обращаются к этому, чтобы определить, какие символы записать, чтобы очистить его.

Если вы попробуете свое первое решение в окне терминала Mac, оно очистит экран.Если вы попробуете это даже без использования Python, но сбросите переменную окружения TERMINAL, то даже системная команда очистки не будет знать, как очистить экран:Python, а не к окну терминала PyCharm, которое, как представляется, не устанавливает эту переменную среды.

Возможно, что окно терминала PyCharm не поддерживает ANSI или другие последовательности для очистки экрана. поддерживает некоторые escape-последовательности для цветного текста, по крайней мере.Может случиться так, что он просто неправильно устанавливает переменную окружения.Вы можете попробовать export TERM=ansi в терминале и , а затем попытаться запустить команду очистки, чтобы проверить, работает ли это.

Еще одна вещь, которую вы можете попробовать, это использовать Нажмите очистить экран независимо от устройства и платформы.Клик довольно хорош в целом.Следующее, например, работает для меня даже после того, как я сбросил TERM в терминале:

import click
click.clear()
0 голосов
/ 29 января 2019

Я считаю, что эта тема больше связана с PyCharm, вы можете создавать свои собственные сочетания клавиш в PyCharm для очистки экрана, как если бы это было на консоли или cmd:

  1. Открыть настройки Pycharm
  2. Поиск: «очистить все»
  3. Двойной щелчок «очистить все» -> добавить сочетание клавиш (установите для него CMD + L или любое другое значение)
  4. Убедитесь, что нажалив консоли (или в окне «Выполнить») перед использованием ярлыка, иначе он ничего не сделает.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...