Как и большинство разработчиков 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
Вот кое-что удобное, что немного более кроссплатформенно:
Это самая простая вещь, которую вы можете сделать, и она не требует никаких дополнительных библиотек. Она очищает экран и возвращается >>> в верхний левый угол.
print("\033[H\033[J", end="")
ОБНОВЛЕНИЕ 1:
Поскольку этот ответ привлекает некоторое внимание, возможно, вы захотите узнать, как это работает. Приведенная выше команда выводит управляющие коды ANSI:
\033[H команда перемещает курсор в верхний левый угол экрана.
\033[J очищает экран от курсора до конца экрана.
Необязательный параметр 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: