Вопрос-Ответ

How can I clear the interpreter console?

Как я могу очистить консоль интерпретатора?

Как и большинство разработчиков Python, я обычно оставляю открытым окно консоли с запущенным интерпретатором Python для тестирования команд, dir() материала help() stuff и т.д.

Как и в любой консоли, через некоторое время видимое отставание прошлых команд и отпечатков становится загроможденным, а иногда и сбивающим с толку при повторном запуске одной и той же команды несколько раз. Мне интересно, можно ли очистить консоль интерпретатора Python и как это сделать.

Я слышал о выполнении системного вызова и либо о вызове cls в Windows, либо clear в Linux, но я надеялся, что есть что-то, что я мог бы приказать сделать самому интерпретатору.

Примечание: Я работаю в Windows, поэтому Ctrl + L не работает.

Переведено автоматически
Ответ 1

Как вы упомянули, вы можете выполнить системный вызов:

Для Windows:

>>> import os
>>> clear = lambda: os.system('cls')
>>> clear()

Для Linux это было бы:

>>> import os
>>> clear = lambda: os.system('clear')
>>> clear()
Ответ 2

Вот кое-что удобное, что немного более кроссплатформенно:

import os

def cls():
os.system('cls' if os.name=='nt' else 'clear')

# Now, to clear the screen
cls()
Ответ 3

Это самая простая вещь, которую вы можете сделать, и она не требует никаких дополнительных библиотек. Она очищает экран и возвращается >>> в верхний левый угол.

print("\033[H\033[J", end="")

ОБНОВЛЕНИЕ 1:

Поскольку этот ответ привлекает некоторое внимание, возможно, вы захотите узнать, как это работает. Приведенная выше команда выводит управляющие коды ANSI:

Необязательный параметр end="" позволяет избежать печати символа новой строки после выполнения этих команд, поэтому >>> остается в самой верхней строке.

ОБНОВЛЕНИЕ 2:

Возможно, вы захотите расширить приведенную выше команду одним дополнительным параметром - x (перед J):

print("\033[H\033[xJ", end="")

  • Если x равно 1, он будет очищен от курсора до начала экрана.

  • Если x равно 2, он очистит весь экран и переместит курсор в верхний левый угол.

  • Если x равно 3, это очистит весь экран и удалит все строки, сохраненные в буфере обратной прокрутки.

Итак, эта команда очистит все, включая буфер:

print("\033[H\033[3J", end="")

КОМАНДНАЯ СТРОКА:

Чтобы очистить экран в оболочке (консоли / терминале), вы можете использовать ту же команду. Чтобы очистить весь экран и удалить все строки, сохраненные в буфере прокрутки, поставьте 3 перед J:

printf "\033[H\033[3J"

или создайте псевдоним:

alias cls='printf "\033[H\033[3J"'
Ответ 4

Что ж, вот быстрый взлом:

>>> clear = "\n" * 100
>>> print clear
>>> ...do some other stuff...
>>> print clear

Или, чтобы сэкономить время ввода, поместите этот файл в путь поиска python:

# wiper.py
class Wipe(object):
def __repr__(self):
return '\n'*1000

wipe = Wipe()

Тогда вы можете делать это из интерпретатора сколько угодно :)

>>> from wiper import wipe
>>> wipe
>>> wipe
>>> wipe
python windows