Как очистить консоль в python

Обновлено: 22.11.2024

При работе с интерактивной оболочкой Python экран может быть загроможден. Для пользователей Windows и Linux можно запустить cls или очистить экраны. Но это, похоже, не сокращает его при работе в оболочке Python. Вот несколько быстрых советов, как добиться этого в Python.

Сначала нам нужно войти в оболочку Python 😆. Для этого введите python в своем терминале или, если вы хотите получить доступ к оболочке Django DB, достаточно оболочки python manage.py.

первый способ

Самый простой способ — использовать Ctrl+L для терминалов Linux/OS X.

второй способ

Еще один удобный способ — использовать модуль os, который поставляется со стандартной библиотекой python. Этот модуль предоставляет портативный способ использования функций, зависящих от операционной системы.

Выйти из полноэкранного режима

Для достижения этой функциональности мы используем лямбда-функции Python. Вызывая базовую функцию очистки ОС для системы на базе UNIX и назначая ее нашей вновь созданной функции очистки.

Таким образом, если мы хотим очистить экран, мы можем вызвать функцию вроде clear()

для систем Windows также будет работать следующее.

Выйти из полноэкранного режима

и вызовите функцию в оболочке Python, запустив cls()

Обратите внимание, что вам не нужно объявлять функцию как clear или cls. Вы можете называть их как хотите, если вы используете это имя при обращении к ним.

Другие полезные приемы, которые вы можете использовать с модулем os

Получение текущего рабочего каталога

Выйти из полноэкранного режима

В моем случае это вернуло '/Users/me/Projects'

Изменение текущего рабочего каталога

Выйти из полноэкранного режима

Это должно работать так же, как cd .. возвращает '/Users/me'

перечисление элементов в каталоге

Выйти из полноэкранного режима

аналогично команде ls.

получить вошедшего в систему пользователя, работающего с терминалом

Выйти из полноэкранного режима

Дополнительную информацию о модуле os см. в документации

Спасибо за прочтение. Если у вас есть какие-либо вопросы, свяжитесь со мной в Twitter.

Обсуждение (0)

Для дальнейших действий вы можете заблокировать этого человека и/или сообщить о нарушении

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

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

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

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

Я удивлен, что никто не упомянул об этом. Но когда вы используете оболочку Ipython, вы можете использовать Ctrl + L даже в Windows

37 ответов 37

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

Для Linux это будет:

+1, хороший ответ. Есть ли способ использовать возвращаемое значение, чтобы оно не отображалось? Я получаю "0" после очистки.

Определите его в обычной функции, вместо лямбда не должно показывать '0', так как возвращаемое значение будет None.

вот кое-что полезное, немного более кроссплатформенное

Отличный способ решения задач. Объедините это с лямбда-выражением выше, чтобы сохранить строку кода, чертовски удобно! Спасибо! :)

Ну, вот лайфхак:

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

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

@Triptych: c = "\n" * 100 полезностей, +1 за это. Небольшой комментарий, который очищает и приводит к нижней части оболочки, я предпочитаю начинать с верхней части оболочки.

Несмотря на то, что люди смеются, печать большого количества новых строк — это именно то, что делают внешние процессы clear и cls. Это это способ сделать это. (просто печать или функция с вызовом печати, не приписывая "чистой" строке, конечно)

@jsbueno нет, это не так. Ну может на винде (хотя сомневаюсь, у него есть API для очистки консоли). Во всех других системах clear выводит директиву, которая очищает экран. Без разрушения буфера прокрутки. В моей системе он выводит следующую управляющую последовательность: \33[3J\33[H\33[2J . То есть: [стереть прокрутку] [сбросить позицию курсора] [стереть экран]. [Стереть прокрутку] можно опустить, используя clear -x .

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

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

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

\033 означает ESC (значение 27 по стандарту ANSI).

\033[Команда H перемещает курсор в левый верхний угол экрана.

\033[J очищает экран от курсора до конца экрана.

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

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

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

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

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

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

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

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

У вас есть несколько способов сделать это в Windows:

Все эти способы хороши. ерунда cls будет работать только в Windows и затруднит кроссплатформенность вашей программы, просто напечатать 100 новых строк. фу? И сочетание клавиш в программе не используется.

Несмотря на то, что это старый вопрос, я решил внести свой вклад, подытоживая то, что я считаю лучшим из других ответов, и добавить свою собственную морщинку, предложив вам поместить эти команды в файл и установите переменную среды PYTHONSTARTUP, чтобы она указывала на нее. Поскольку в данный момент я работаю в Windows, это немного предвзято, но легко может быть отклонено в другом направлении.

Кстати, не заключайте в кавычки путь к файлу, даже если в нем есть пробелы.

В любом случае, вот мой вариант кода для вставки (или добавления в существующий) сценария запуска Python:

Кстати, вы также можете использовать трюк __repr__ @Triptych, чтобы изменить функцию exit() на просто exit (и то же самое для ее псевдонима quit ):

Наконец, вот еще кое-что, что меняет основную подсказку интерпретатора с >>> на cwd+ >>> :

Используете ли вы консоль интерпретатора Python для отработки кода Python?

Возможно, вы заметили, что нет прямого способа или команды для очистки консоли интерпретатора Python.

Не беспокойтесь. Существует косвенный способ сделать это. Посмотрим.

Вы можете очистить экран консоли интерпретатора Python с помощью системного вызова.

Системные вызовы для очистки консоли:

  • Для оконной системы cls очистить консоль.
  • Для системы Linux работает команда очистки.

Мы можем запустить эти системные вызовы через Python, чтобы очистить экран. Это просто.

Чтобы вызывать системные вызовы через консоль Python, нам нужно импортировать библиотеку os. Эта библиотека ОС поставляется вместе с установкой Python. Нет необходимости явно устанавливать его.

Посмотрите это видео, в котором я продемонстрировал, как очистить консоль интерпретатора оболочки Python.

Команда для очистки консоли интерпретатора Python в окне

Использование определения Python:

Если вы знаете базовый синтаксис Python, этот код не требует пояснений.

Использование лямбда-функции:

Команда для очистки консоли интерпретатора Python в Linux:

Использование определения Python:

Использование лямбда-функции:

Не просто скопируйте и вставьте код:

Почему я это говорю?

Если вы скопируете и вставите код, я почти уверен, что вы забудете этот код, а завтра снова выполните поиск в Google.

Лучший способ — понять код, написанный выше. Довольно просто запомнить и написать код, если вы знаете, как он реализован.

Что такое лямбда-функция?

Приведенный выше код посвящен лямбда-функции.

Ключевое слово «лямбда» в Python используется для определения анонимных функций. Эти функции также называются лямбда-функциями.

Подробнее о лямбда-функции. Вы можете написать много таких кодов без лишней суеты. Это очень полезно.

Эти команды протестированы на версии Python 3.4. Он будет работать как для версий Python 2.x, так и для версий 3.x.

Что дальше?

Вы можете запустить программу Python без использования консоли интерпретатора Python. Установите бесплатный текстовый редактор для вашей системы (Linux/Windows/Mac). И теперь вы можете запустить программу Python из командной строки Windows или терминала Linux.

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

Статьи по теме:

Надеюсь, вы найдете эти краткие команды и руководство полезными для изучения Python.Я могу вам чем-нибудь помочь? Не стесняйтесь писать в разделе комментариев ниже.

Предположим, есть случай, когда вы предоставили информацию о 3 студентах, и вам нужно распечатать их данные таким образом, что сначала будет информация о студенте 1, затем через некоторое время будет отображаться информация о студенте 2 и, наконец, будет отображаться информация о студенте 3. Таким образом, в этом случае нам придется очищать консоль Python каждый раз после отображения информации о каждом ученике.

Изображение Пояснение к приведенному выше примеру

В интерактивной оболочке/терминале для очистки консоли Python мы можем использовать команду ctrl+l, но в большинстве случаев нам приходится очищать экран при запуске скрипта Python, поэтому мы должны делать это программно.

Мы можем очищать экран программно, и это помогает нам форматировать вывод так, как мы хотим. Мы также можем очистить вывод, когда захотим, много раз.

Как очистить экран консоли Python?

Очистка консоли в python осуществляется по-разному для разных операционных систем. Они указаны ниже:

  • В Windows: для очистки консоли в операционной системе Windows мы будем использовать функцию system() из модуля os с параметром 'cls'.

Синтаксис функции system(): функция system() находится в модуле os, поэтому модуль os необходимо импортировать перед использованием функции system() в Windows. После импорта строкового значения модуля ОС параметр «cls» передается внутри системной функции для очистки экрана.

  • В Linux и MacOS: для очистки консоли в операционных системах Linux и Mac мы будем использовать функцию system() из модуля os с параметром «clear».

Синтаксис: перед использованием функции system() в Linux необходимо импортировать модуль os. После импорта строкового значения модуля os параметр «clear» передается внутри системной функции для очистки экрана.

  • Ctrl+l: этот метод работает только в операционной системе Linux. В интерактивной оболочке/терминале мы можем просто использовать ctrl+l для очистки экрана.

Пример очистки экрана Python

Пример 1: очистка экрана в операционной системе Windows

Давайте рассмотрим пример очистки экрана в Python, чтобы прояснить наше понимание.

Мы будем использовать указанную выше функцию system() для очистки консоли Python.

Сначала мы напечатаем некоторый вывод, затем подождем 4 секунды, используя функцию sleep(), чтобы остановить программу на 4 секунды, после чего применим os.system('cls') для очистки экрана.

Вывод

В окне вывода сначала будет напечатан заданный текст, затем программа приостановится на 4 секунды, затем экран очистится и выполнение программы будет остановлено.

Пример 2. Очистка экрана и печать дополнительной информации в операционной системе Windows.

Сначала мы напечатаем некоторый вывод, затем подождем 1 секунду, используя функцию sleep(), после чего применим os.system('cls') для очистки экрана.

После этого мы напечатаем дополнительную информацию.

Вывод

В окне вывода будет напечатана первая информация, затем программа приостановится на 1 секунду, и экран очистится, затем будет напечатана вторая информация, и снова программа приостановится на 1 секунду, и, наконец, программа будет остановлена ​​после печати. последняя порция информации.

Пример 3. Очистка экрана в операционной системе Linux

Мы будем использовать указанную выше функцию system() для очистки консоли Python.

Сначала мы напечатаем некоторый вывод, затем подождем 5 секунд с помощью функции sleep(), после чего применим os.system('clear') для очистки экрана.

Вывод

В окне вывода сначала будет напечатан заданный текст, затем программа приостановится на 5 секунд, затем экран очистится и выполнение программы будет остановлено.

Пример 4. Что, если мы не знаем, над какой ОС мы работаем?

Может быть случай, когда нам нужно сначала определить, над какой ОС мы работаем. Поэтому для этого мы сначала определим, является ли ОС Windows, Linux или Mac.

Для ОС Windows имя "nt", а для Linux или Mac имя ОС - "posix".

Поэтому сначала проверим имя ОС, а затем соответственно применим функцию.

Вывод

Для этого случая имя ОС — 'nt', поэтому консоль Windows будет очищена через 2 секунды приостановки программы, а затем она будет завершена.

Заключение

Теперь, когда мы рассмотрели различные примеры очистки экрана в Python, давайте отметим несколько моментов.

Читайте также: