Как очистить консоль в python
Существует ли какой-либо стандартный метод "поставляется с батареями", чтобы очистить экран терминала от скрипта Python, или мне нужно проклинать (библиотеки, а не слова)?
ОТВЕТЫ
Ответ 1
Как насчет escape-последовательностей?
Ответ 2
Простым и кросс-платформенным решением будет использование либо команды cls в Windows, либо clear в Unix-системах. Используется с os.system , это делает приятный однострочный:
Ответ 3
Почему никто не говорил о простом выполнении Ctrl + L в Windows или Cmd + L в Mac. Наверняка самый простой способ очистки экрана.
Ответ 4
Если вы находитесь в системе Linux/UNIX, тогда печать escape-последовательности ANSI для очистки экрана должна выполнять задание. Вы также хотите переместить курсор в верхнюю часть экрана. Это будет работать на любом терминале, поддерживающем ANSI.
Это не будет работать в Windows, если поддержка ANSI не включена. Для Windows может быть эквивалентная последовательность управления, но я не знаю.
Ответ 5
Для Windows, Mac и Linux вы можете использовать следующий код:
Ролика отметил, что end="" не позволит печатать новую строку после этого.
Ответ 6
Что касается меня, самый элегантный вариант:
Ответ 7
Вы можете попытаться полагаться на ясный, но он может быть недоступен во всех дистрибутивах Linux. В окнах используйте cls, как вы указали.
Примечание. Это может считаться плохой формой для управления экраном терминала. Рассматриваете ли вы вариант? Вероятно, лучше было бы позволить пользователю решить, хочет ли он очистить экран.
Ответ 8
Решение Pure Python.
Не полагается ни на ANSI, ни на внешние команды.
Только ваш терминал должен иметь возможность рассказать вам, сколько строк находится в поле зрения.
версия Python >= 3.3.0
Ответ 9
Пришло какое-то время назад
Затем просто используйте clearscreen()
Ответ 10
Так что просто подумал, что я бросу свои два цента здесь.
Похоже, никто не дал верного ответа на вопрос OP, каждый либо отвечает "НЕ ИСПОЛЬЗУЙТЕ os.system() it evil . " без объяснения причин или предоставляет решение, которое опирается на печать новых строк.
Для тех, кому необходимо очистить экран терминала и прокрутить назад, по любой причине, вы можете использовать следующий код:
Это дает желаемый эффект. Он использует команду os.system(), поэтому, если это зло и кто-то знает способ реализовать это с помощью subprocess.call(), пожалуйста, прокомментируйте, поскольку я также предпочел бы использовать подпроцесс, но совсем не знаком с ним.
Ответ 11
Это очистит окно терминала.
Ответ 12
Это будет работать в обеих версиях Python2 ИЛИ Python3
Ответ 13
Эта функция работает в gnome-terminal, потому что по умолчанию она распознает escape-последовательности ANSI. Это дает вам расстояние CLEAN PROMPT rows_max от нижней части терминала, но также точно от того, где оно было вызвано. Дает вам полный контроль над тем, как очистить.
Для использования в интерактивном режиме: Сначала скопируйте и вставьте функцию copy(. ) в интерактивный режим и посмотрите, работает ли она для вас. Если это так, добавьте указанную выше функцию в файл с именем clear.py. В терминале запускается python, с 'python3'. Введите:
Теперь отпустите файл clear.py в один из перечисленных ниже каталогов path , чтобы Python мог его найти (не перезаписывайте существующие файлы). Чтобы легко использовать с этого момента:
Для использования в терминальном приложении: Поместите функцию copy(. ) в файл с именем clear.py в той же папке с вашим файлом main.py. Вот пример работы с абстрактным (скелетом) из приложения игры Tic Tac Toe (запуск из командной строки: python3 tictactoe.py):
Объяснение: do_print(. ) в строке 19 представлена версия print(. ) , необходимая для отслеживания количества новых строк ( self.rows ). В противном случае вам придется self.rows += 1 повсюду, где print(. ) вызывается во всей программе. Поэтому каждый раз, когда плата перерисовывается, вызывая show_board() , предыдущая плата очищается, и новая доска печатается точно там, где она должна быть. Уведомление self.clear(calling_line=False) в строке 9 в основном подталкивает все до RELATIVE в нижней части терминала, но не очищает исходную линию вызова. Напротив, self.clear(absolute=self.rows) в строке 29 полностью очищает все self.rows расстояние вверх, а не просто подталкивает все вверх относительно нижней части терминала.
Ответ 14
Если вы хотите очистить свой терминал, когда вы используете оболочку Python. Затем вы можете сделать следующее, чтобы очистить экран
Ответ 15
Вы можете прорваться через базу данных terminfo, но функции для этого в любом случае находятся в curses .
Я знаю, что есть похожая тема о консоли Python, но я не знаю, совпадают ли они. Я попробовал систему («очистить»), и она не сработала.
Как очистить окно IDLE Python?
это не дубликат, OP спрашивает о том, как очистить оболочку IDLE, а не консоль Причина, по которой это не работает, заключается в том, что Python запускает новый сеанс оболочки и запускает там команду clear . Это также объясняет, почему cd не работает в system.os . Удерживайте ctrl + j некоторое время, а затем нажмите Enter, это будет лучший способ @ytpillai, Ах, но это дает мне подсказку внизу. Решение, без сомнения, но все же вызывает некоторое удобство.«Cls» и «clear» - это команды, которые будут очищать терминал (то есть приглашение DOS или окно терминала). На скриншоте вы используете оболочку в IDLE, которая не будет зависеть от таких вещей. К сожалению, я не думаю, что есть способ очистить экран в IDLE. Лучшее, что вы можете сделать, это прокрутить экран вниз по множеству строк, например:
Хотя вы могли бы поместить это в функцию:
А затем позвоните, когда это необходимо, как cls()
Это действительно очищает экран, но вы все равно получаете подсказку «>>>» в последней строке, а не сверху, что, я думаю, делает его менее неэффективным . еще +1 для ясного экрана Это не очистит экран, я все еще могу прокрутить назад! Обратите внимание, что это тег Python. Не зависит от версии. Для всех пользователей Python 3.x print('\n'*100)os.system('clear') работает на Linux. Если вы используете Windows, попробуйте os.system('CLS') вместо этого.
Вам нужно сначала импортировать ОС следующим образом:
Система os.system ('CLS') работает в Windows. (Python 2.6). Получившийся экран очищается, показывая только «0», который, как я полагаю, является возвращаемым значением для CLS, вверху. Следующая строка имеет приглашение >>>. это делает вызов os для cls во внешней командной строке и не взаимодействует с Idle простоя это не консольное окно. Обе команды clear и cls работают на окнах консоли / терминала. Почему за это проголосовали? Это откроет новую командную строку, очистит ее и закроетСамый простой ответ на этот вопрос
Это хороший, прямой и практический ответ на этот вопрос; закрыть в режиме ожидания, оставить файл открытым, запустить файл снова, и в режиме ожидания теперь есть новый экран. @Mike_K, это может быть полезно, но не всегда. Прямо сейчас у меня разделенный экран (книга <|> простаивает). Когда я снова выполняю режим ожидания, новый экран приходит в положение / размеры по умолчанию. Так будет очень скучно.Невозможно очистить оболочку Python IDLE без интеграции с внешним модулем. Если вы действительно хотите получить чистую чистую свежую оболочку, просто закройте предыдущую оболочку и запустите ее снова.
ctrl + L очищает экран в Ubuntu Linux.
В Windows тоже, если вы используете IDLEx. Ура! Так счастлив, что наконец-то получил простое решение! Не работает в Ubuntu 18.04. Тем хуже здесь использование CTRL + J несколько раз. Добавлено в мой сегодняшний хак! Также работать как шарм в MacOS!Расширение для очистки оболочки можно найти в Issue6143 как «запрос функции». Это расширение включено в IdleX .
Это блестящее расширение для Python Idle. Спасибо вам большое!Это прекрасно. Также не печатается «0».
Хорошо, просто, делает то, что говорит. Или после import os просто введите os.system("clear") хотя функция удобна, если вам часто нужно очистить экран. os.system («очистить») сработало. Это работает для меня, но я должен набрать "cls ()" Когда я попытался это сделать, командная строка вернула <function cls at 0x024D25D0>, а консоль неПохоже, что нет способа очистить буфер «оболочки» IDLE.
Способ выполнения команд в Python 2.4+ - использовать модуль подпроцесса . Вы можете использовать его так же, как вы используете os.system .
Если вы выполняете это в консоли python, вам нужно что-то сделать, чтобы скрыть возвращаемое значение (для одного os.system или subprocess.call ), например, присвоить его переменной:
Хм .. Вот что я получаю за то, что я не использую Windows и, следовательно, не могу ее протестировать. Попробуйте subprocess.call ("cls", shell = True)Мне нравится использовать:
Файл -> Новое окно
В новом окне **
Выполнить -> Python Shell
Проблема этого метода в том, что он очистит все, что вы определили, например переменные.
Кроме того, вы должны просто использовать командную строку.
открыть командную строку
введите "cd c: \ python27"
введите "python example.py", вы должны отредактировать его, используя IDLE, когда он не находится в интерактивном режиме. Если вы находитесь в оболочке Python, файл -> новое окно.
Обратите внимание, что example.py должен находиться в том же каталоге, что и C: \ python27, или в любом другом каталоге, в котором установлен Python.
Затем отсюда вы просто нажимаете клавишу со стрелкой ВВЕРХ на клавиатуре. Вы просто редактируете example.py, используете CTRL + S, затем возвращаетесь в командную строку, нажимаете клавишу со стрелкой ВВЕРХ, нажимаете ввод.
Если командная строка становится слишком загруженной, просто введите «clr»
Команда "clr" работает только с командной строкой, она не будет работать с IDLE.
Просто быстрый вопрос:
Как вы очищаете экран в оболочке? Я видел такие способы:
Это просто открывает команду Windows, очищает экран и закрывает, но Я хочу очистить окно оболочки
(PS: я не знаю, помогает ли это, но я использую Python версии 3.3.2)
Спасибо :)
Для OS X вы можете использовать модуль подпроцесса и вызывать 'cls' из оболочки:
Чтобы предотвратить отображение «0» в верхней части окна, замените 2-ю строку на:
Для Linux вы должны заменить команду cls на clear
Как насчет ярлыка CTRL + L ?
Это работает для всех оболочек, например Python, Bash, MySQL, MATLAB и др.
Эта функция работает в любой ОС (Unix, Linux, macOS и Windows)
Python 2 и Python 3
В Windows команда cls , в Unix-подобных системах это команда clear .
platform.system() возвращает имя платформы. Ex . 'Darwin' для macOS.
subprocess.call() выполняет системный вызов. Ex . subprocess.call(['ls','-l'])
Используя windows 10 и python3.5 , я протестировал много кодов, и ничто не помогает мне больше, чем это:
Сначала определите простую функцию, эта функция будет печатать 50 новых строк (число 50 будет зависеть от того, сколько строк вы видите на экране, поэтому вы можете изменить это число)
Затем просто позвоните столько раз, сколько вы хотите или нужно
Я использую класс, который просто использует один из вышеуказанных методов за кулисами . Я заметил, что он работает в Windows и Linux . Мне нравится использовать его, хотя, потому что легче набирать clear () вместо system ('clear') ) или os.system ('очистить')
А затем, когда вы хотите очистить оболочку:
Вот несколько вариантов, которые вы можете использовать в Windows
Третий вариант, если вы находитесь в окне Python REPL:
Если вы используете терминал Linux для доступа к Python, то cntrl + l - лучшее решение для очистки экрана.
Вот как можно создать собственную команду cls или clear , которая будет работать без явного вызова какой-либо функции!
Мы воспользуемся тем, что консоль python вызывает repr() для отображения объектов на экране. Это особенно полезно, если у вас есть собственная настраиваемая оболочка python (например, с параметром -i ) и у вас есть сценарий предварительной загрузки для него. Это то, что вам нужно:
Используйте clear вместо cls , если вы используете Linux (как в команде os , так и в имени переменной)!
Теперь, если вы просто напишите cls или clear в консоли - это очистит! Даже не cls() или clear() - просто необработанная переменная. Это потому, что python вызовет repr(cls) , чтобы распечатать его, что, в свою очередь, вызовет нашу __repr__ функцию.
Давайте проверим это:
Чтобы уточнить - приведенный выше код должен быть импортирован в консоли, как это
Я знаю, что есть аналогичная тема о консоли python, но я не знаю, совпадают ли они. Я попробовал систему ( "clear" ), и она здесь не работала.
Как очистить окно IDLE python?
это не дубликат, OP спрашивает о том, как очистить оболочку IDLE, а не консоль Причина, по которой это не работает, заключается в том, что Python запускает новый сеанс оболочки и запускает команду clear там. Это также объясняет, почему cd не работает в system.os . Удерживайте ctrl + j некоторое время, а затем нажмите Enter, это будет лучший способ @ytpillai, Ах, но это дает мне подсказку внизу. Решение, без сомнения, но все же вызывает некоторое удобство.24 ответа
"cls" и "clear" - это команды, которые очищают терминал (например, приглашение DOS или окно терминала). На скриншоте вы используете оболочку в IDLE, которая не будет затронута такими вещами. К сожалению, я не думаю, что есть способ очистить экран в IDLE. Лучшее, что вы можете сделать, это прокрутить экран вниз по множеству строк, например:
Хотя вы можете поместить это в функцию:
И затем назовите его, когда необходимо, в качестве cls()
Он очищает экран, но вы все равно получаете подсказку ">>>" в последней строке, а не сверху, что, я думаю, делает его менее неэффективным . +1 для чистого экрана Это достойный обходной путь - единственный, который я нашел работающим Python 3.4.2 - мне пришлось заключить в скобки "\ n" и * 100, поэтому: print ("\n" * 100) Это не очистит экран, я все еще могу прокрутить назад!os.system('clear') работает с linux. Если вы используете Windows, попробуйте os.system('CLS') .
Вам нужно сначала импортировать os следующим образом:
Кажется, не работает. Может мне что то импортировать? Ну, это не очищает оболочку Python. Но я вижу отпечаток 0. Это не работает в оболочке Windows Idle tkinter, хотя, вероятно, работает в командной строке. это делает вызов os для cls во внешней командной строке и не взаимодействует с Idle простоя это не консольное окно. Обе команды clear и cls работают в окнах консоли / терминала. Вопрос в том, чтобы «очистить экран в режиме ожидания». Вышеуказанные методы, безусловно, не работают на моем компьютере. @devouredelysium В консоли назначьте os.system("clear") переменной, чтобы не видеть 0. Почему за это проголосовали? Это откроет новую командную строку, очистит ее и закроет Я использую VS CODE на Mac для обучения ООП с помощью системы текстового меню. Это работает только на ОКНА ТЕРМИНАЛА, а не на консоли отладки. Это подходит для моих целей очистки перед отображением нового меню. (Просто поясняю, почему я считаю этот ответ полезным)ctrl + L очищает экран от Ubuntu Linux.
В Windows тоже, если вы используете IDLEx. Ура! Так счастлив, что наконец-то получил простое решение! Не работает в Ubuntu 18.04. Тем хуже здесь, используйте CTRL + J несколько раз. Добавлено в мой сегодняшний хак! Также работать как шарм в MacOS!Самый простой ответ на этот вопрос:
Это хороший, прямой и практический ответ на этот вопрос; Закрыть в режиме ожидания, оставить файл открытым, запустить файл еще раз, и в режиме ожидания теперь отображается новый экран. @Mike_K, это может быть полезно, но не всегда. Прямо сейчас у меня разделенный экран (книга <|> простаивает). Когда я снова запускаю режим ожидания, новый экран приходит в положение / размеры по умолчанию. Так что будет очень скучно.Невозможно очистить оболочку IDLE python без интеграции внешнего модуля. Если вы действительно хотите получить чистую чистую свежую оболочку, просто закройте предыдущую оболочку и запустите ее снова.
Расширение для очистки оболочки можно найти в Issue6143 как "запрос функции". Это расширение включено в IdleX.
Это блестящее расширение для Python Idle. Спасибо вам большое!Это прекрасно. Напечатано также "0".
Хорошо, просто, делает то, что говорит. Или после import os просто наберите os.system("clear") хотя функция удобна, если вам часто приходится очищать экран. os.system («очистить») сработало. Это работает для меня, но я должен набрать "cls ()" Когда я попытался это сделать, командная строка вернула <function cls at 0x024D25D0> и консоль не очистиласьКажется, что нет способа очистки буфера оболочки IDLE.
Способ выполнения команд в Python 2.4+ состоит в использовании модуля subprocess. Вы можете использовать его так же, как вы используете os.system .
Если вы выполняете это в консоли python, вам нужно что-то сделать, чтобы скрыть возвращаемое значение (для os.system или subprocess.call ), например присвоение переменной:
Хм .. Вот что я получаю за то, что не пользуюсь Windows и, следовательно, не могу ее протестировать. Попробуйте subprocess.call ("cls", shell = True) cls = subprocess.call ("cls", shell = True) .. Именно то, что мне нужно. Спасибо..Я бы порекомендовал вам использовать Thonny IDE для Python. В этой оболочке есть опция "Clear Shell", и вы также можете отслеживать переменные, созданные в отдельном списке. Отладка очень хороша даже по сравнению с современными IDE. Вы также можете написать код в файле Python вместе с доступом к оболочке в том же месте.
Ни один из этих решений не работал у меня в Windows 7 и в IDLE. Раньше, используя PowerShell, запустив в нем Python и выйдя на вызов "cls" в PowerShell, чтобы очистить окно.
CONS: Предполагается, что Python уже находится в переменной PATH. Кроме того, это очищает переменные Python (хотя перезагружает оболочку).
PROS: Сохраняет все сделанные вами настройки окна (цвет, размер шрифта).
Вы можете сделать AutoHotKey script.
Чтобы установить ctrl-r в горячую клавишу, чтобы очистить оболочку:
Просто установите AutoHotKey, поместите вышеуказанное в файл с именем idle_clear.ahk, запустите файл, и ваша горячая клавиша активна.
В новом окне **
Проблема с этим методом заключается в том, что он очистит все, что вы определили, например переменные.
Кроме того, вы должны просто использовать командную строку.
открыть командную строку
введите "cd c:\python27"
Обратите внимание, что example.py должен находиться в том же каталоге, что и C:\python27, или в любом каталоге, на котором установлен python.
Затем отсюда вы просто нажимаете клавишу со стрелкой вверх на клавиатуре. Вы просто отредактируете example.py, используйте CTRL + S, затем вернитесь в командную строку, нажмите стрелку вверх, нажмите enter.
Если командная строка слишком переполнена, просто введите "clr"
Команда "clr" работает только с командной строкой, она не будет работать с IDLE.
Читайте также: