Как очистить консоль в python
Перейти к содержимому

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

  • автор:

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

Как сделать так, чтобы очистило консоль? Я пытался очистить командой «cls», но выводит ошибку. Как это сделать?

  • Вопрос задан более двух лет назад
  • 183 просмотра

Комментировать

Решения вопроса 1

Для linux os.system(‘clear’) , для windows os.system(‘cls’)

Ответ написан более двух лет назад

Комментировать

Нравится 1 Комментировать

Ответы на вопрос 1

yupiter7575

Yupiter7575 @yupiter7575

Python программист

Если у вас открыт пайтон командой python то пишите quit(), затем cls

Ответ написан более двух лет назад

Комментировать

Нравится Комментировать

Ваш ответ на вопрос

Войдите, чтобы написать ответ

python

  • Python
  • +2 ещё

Как починить хендрел в aiogram?

  • 1 подписчик
  • 2 часа назад
  • 3 просмотра

Очистка консоли

Author24 — интернет-сервис помощи студентам

Лёгкий (для профессионалов) вопрос = какая команда есть для очистки консоли (типа написал cls он очистил командную строку) (когда прога уже исполняется)?

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Очистка консоли python (Debian)
Необходимо очищать консоль после каждых изменений введенных пользователем. Не хитрый метод.

Очистка консоли, очистка строки, установка курсора
Здравствуйте! Подскажите как можно после очистки консоли поставить курсор в самый вверх, чтоб то.

Очистка консоли
Всем здравствуйте. Начал изучать JAVA в консоль пишу/читаю без проблем. Решил очистить консоль.

Очистка консоли
Есть ли в java команда, написав которую, все , что было написано до этой функции в консоле.

131 / 117 / 29
Регистрация: 09.07.2019
Сообщений: 1,068
Записей в блоге: 4

Лучший ответ

Сообщение было отмечено Alex_199 как решение

Решение

import os os.system('cls')

Регистрация: 14.11.2019
Сообщений: 67
спс, оч благодарен, что не поленились ответить, да ещё и это прочитать
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Очистка консоли
Простите за нубские вопросы, но как очистить консоль в программе ruby?

Очистка консоли
Здравствуйте подскажите пожалуйста как мне на с++ (каким способом) можно в процессе исполнения.

Очистка экрана консоли
Существует ли функция, наподобие system(cls) в С или clrscr в Pascal, полностью очищающая экран.

Очистка экрана в консоли
Добрый день. Столкнулся со следующей проблемой! Допустим есть консольное приложение, которое.

Очистка консоли по условию
Имеем кусок кода: public static double Calculating() //вычисление ‘x’ переменной < .

Или воспользуйтесь поиском по форуму:

Очистить терминал в Python

Простым и кроссплатформенным решением было бы использовать либо команду cls в Windows, либо clear в Unix системах. Используется с os.system , это делает хорошую однострочную команду:

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

Поделиться 18 января 2010 в 08:09
Что насчет последовательностей экранирования?

print(chr(27) + "[2J") 

Поделиться 18 января 2010 в 07:38

Почему никто не говорил о том, чтобы просто сделать Ctrl + L в Windows или Cmd + L на Mac. Наверняка, самый простой способ очистки экрана.

Поделиться 29 октября 2014 в 19:44
Что касается меня, самый элегантный вариант:

import os os.system('cls||clear') 

Поделиться 29 апреля 2016 в 14:48
Для Windows, Mac и Linux вы можете использовать следующий код:

import subprocess, platform if platform.system()=="Windows": if platform.release() in : subprocess.run("", shell=True) #Needed to fix a bug regarding Windows 10; not sure about Windows 11 print("\033c", end="") else: subprocess.run(["cls"]) else: #Linux and Mac print("\033c", end="") 
  • подчеркивание моргания: «\033[0 q»
  • блочное моргание: «\033[1 q»
  • блок: «\033[2 q»
  • подчеркивание моргания: «\033[3 q»
  • подчеркивание: «\033[4 q»
  • тонкое моргание строки: «\033[5 q»
  • тонкая строка: «\033[6 q» (цифры выше 6 тоже так делают)

Также обратите внимание, что вы можете сделать любую из этих вещей, чтобы очистить экран на Linux:

  • print(«\033c», end=»»):
  • print(«\u001bc», end=»»)
  • print(«\U0000001bc», end=»»)
  • print(«\x1bc», end=»»)
  • subprocess.run([«clear»]) #Это не сбрасывает весь терминал
  • subprocess.run(‘echo -ne «\033c»‘, shell=True)
  • subprocess.run(‘echo -ne «\ec»‘, shell=True)
  • subprocess.run(‘echo -ne «\u001bc»‘, shell=True)
  • subprocess.run(‘echo -ne «\U0000001bc»‘, shell=True)
  • subprocess.run(‘echo -ne «\x1bc»‘, shell=True)
  • subprocess.run(«printf ‘\033c'»,shell=True)
  • subprocess.run(«printf ‘\ec'», shell=True)
  • subprocess.run(«printf ‘\u001bc'», shell=True)
  • subprocess.run(«printf ‘\U0000001bc'», shell=True)
  • subprocess.run(«printf ‘\x1bc'», shell=True)

Я считаю, что следующий код должен очистить содержимое, которое нужно прокрутить вверх, чтобы увидеть (но его трудно использовать вместе с другой командой без проблем):

  • print(«\033[3J»)

Это может сделать то же самое, что раньше делал clear (чтобы вы могли прокручивать вверх, чтобы увидеть, что было удалено, за исключением того, что это не повышает курсор до верха):

  • print(«\033[2J»)

Поделиться 15 апреля 2014 в 05:14

Если вы используете систему Linux/UNIX, то печать последовательности экранирования ANSI для очистки экрана должна сделать эту работу. Вам также нужно будет переместить курсор в верхнюю часть экрана. Это будет работать на любом терминале, который поддерживает ANSI.

import sys sys.stderr.write("\x1b[2J\x1b[H") 

Это не будет работать на Windows, если поддержка ANSI не была включена. Может быть, есть эквивалентная последовательность управления для Windows, но я не знаю.

Поделиться 18 января 2010 в 07:50

print("\033c") 

Это очистит окно терминала.

Поделиться 19 июня 2018 в 06:25

Сталкивался с этим некоторое время назад

def clearscreen(numlines=100): """Clear the console. numlines is an optional argument used only as a fall-back. """ # Thanks to Steven D'Aprano, http://www.velocityreviews.com/forums if os.name == "posix": # Unix/Linux/MacOS/BSD/etc os.system('clear') elif os.name in ("nt", "dos", "ce"): # DOS/Windows os.system('CLS') else: # Fallback for other operating systems. print('\n' * numlines) 

Затем просто используйте clearscreen()

Поделиться 24 июня 2017 в 19:32

Это будет работать в обеих версиях Python2 ИЛИ Python3

print (u"<>[2J<>[;H".format(chr(27), chr(27))) 

Поделиться 23 октября 2018 в 13:00

Вы можете попробовать полагаться на понятность, но она может быть недоступна на всех дистрибутивах Linux. В Windows используются cls, как вы упоминали.

import subprocess import platform def clear(): subprocess.Popen( "cls" if platform.system() == "Windows" else "clear", shell=True) clear() 

Примечание: Это может считаться плохой формой для управления экраном терминала. Вы рассматриваете возможность использовать вариант? Вероятно, лучше было бы позволить пользователю решить, хочет ли он очистить экран.

Поделиться 26 января 2011 в 17:54

Поэтому я просто подумал, что я бы бросил свои два цента здесь.

Никто не предоставил истинный ответ на вопрос ОП, кажется, все либо отвечают с помощью ‘НЕ ИСПОЛЬЗУЙТЕ os.system() это зло. ‘ без объяснений, либо предоставляют решение, которое опирается на печать новых строк.

Для тех, кто должен очистить экран терминала и прокрутить обратно по какой-либо причине, вы можете использовать следующий код:

import os def clear(): ''' Clears the terminal screen and scroll back to present the user with a nice clean, new screen. Useful for managing menu screens in terminal applications. ''' os.system('cls' if os.name == 'nt' else 'echo -e \\\\033c') print('A bunch of garbage so we can garble up the screen. ') clear() # Same effect, less characters. def clear(): ''' Clears the terminal screen and scroll back to present the user with a nice clean, new screen. Useful for managing menu screens in terminal applications. ''' os.system('cls||echo -e \\\\033c') 

Это имеет желаемый эффект ОП. Он использует команду os.system(), поэтому, если это зло, и кто-то знает способ реализации этого с помощью subprocess.call(), пожалуйста, прокомментируйте, так как я также предпочел бы использовать subprocess, но я совсем не знаком с ним.

Поделиться 16 июня 2017 в 14:02

Чистое решение на Python.
Не полагается ни на ANSI, ни на внешние команды.
Только ваш терминал должен иметь возможность сообщить вам, сколько строк находится в представлении.

from shutil import get_terminal_size print("\n" * get_terminal_size().lines, end='') 

Версия Python >= 3.3.0

Поделиться 01 июня 2014 в 12:58

Эта функция работает в gnome-терминале, потому что по умолчанию она распознает последовательности экранирования ANSI. Она дает вам чистый PROMPT rows_max расстояние от нижней части терминала, но также точно от того, где он был вызван. Дает вам полный контроль над тем, сколько нужно очистить.

def clear(rows=-1, rows_max=None, *, calling_line=True, absolute=None, store_max=[]): """clear(rows=-1, rows_max=None) clear(0, -1) # Restore auto-determining rows_max clear(calling_line=False) # Don't clear calling line clear(absolute=5) # Absolutely clear out to 5 rows up""" from os import linesep if rows_max and rows_max != -1: store_max[:] = [rows_max, False] elif not store_max or store_max[1] or rows_max == -1 or absolute: try: from shutil import get_terminal_size columns_max, rows_max = get_terminal_size() except ImportError: columns_max, rows_max = 80, 24 if absolute is None: store_max[:] = [rows_max, True] if store_max: if rows == -1: rows = store_max[0] elif isinstance(rows, float): rows = round(store_max[0] * rows) if rows > store_max[0] - 2: rows = store_max[0] - 2 if absolute is None: s = ('\033[1A' + ' ' * 30 if calling_line else '') + linesep * rows else: s = '\033[<>A'.format(absolute + 2) + linesep if absolute > rows_max - 2: absolute = rows_max - 2 s += (' ' * columns_max + linesep) * absolute + ' ' * columns_max rows = absolute print(s + '\033[<>A'.format(rows + 1)) 
clear() # Clear all, TRIES to automatically get terminal height clear(800, 24) # Clear all, set 24 as terminal (max) height clear(12) # Clear half of terminal below if 24 is its height clear(1000) # Clear to terminal height - 2 (24 - 2) clear(0.5) # float factor 0.0 - 1.0 of terminal height (0.5 * 24 = 12) clear() # Clear to rows_max - 2 of user given rows_max (24 - 2) clear(0, 14) # Clear line, reset rows_max to half of 24 (14-2) clear(0) # Just clear the line clear(0, -1) # Clear line, restore auto-determining rows_max clear(calling_line=False) # Clear all, don't clear calling line clear(absolute=5) # Absolutely clear out to 5 rows up 

Параметры: rows — это количество чистых текстовых строк, которые нужно добавить между подсказкой и нижней частью терминала, что увеличивает все. rows_max — это высота терминала (или максимальная высота очистки) в текстовых строках, и ее нужно установить только один раз, но можно сбросить в любое время. *, в положении третьего параметра означает, что все следующие параметры являются ключевым словом (например, clear(absolute=5)). calling_line=True (по умолчанию) работает лучше в интерактивном режиме. calling_line=False работает лучше для текстовых, терминальных приложений. absolute был добавлен для попытки исправить глючные проблемы в интерактивном режиме после уменьшения размера терминала, но также может использоваться для терминальных приложений. store_max предназначен только для секретного «постоянного» хранения значения rows_max ; не используйте этот параметр явно. (Когда аргумент не передается для store_max , изменение содержимого списка store_max изменяет значение по умолчанию этого параметра. Следовательно, постоянное хранение.)

Для использования в интерактивном режиме: Сначала скопируйте и вставьте функцию copy(. ) в интерактивный режим и посмотрите, работает ли она для вас. Если это так, то поместите вышеуказанную функцию в файл с именем clear.py. В терминале запустите python с помощью ‘python3’. Введите:

>>> import sys >>> sys.path ['', '/usr/lib/python3.3', . 

Теперь переместите файл clear.py в один из перечисленных каталогов path , чтобы Python мог его найти (не перезаписывать существующие файлы). Чтобы легко использовать с этого момента:

>>> from clear import clear >>> clear() >>> print(clear.__doc__) clear(rows=-1, rows_max=None) clear(0, -1) # Restore auto-determining rows_max clear(calling_line=False) # Don't clear calling line clear(absolute=5) # Absolutely clear out to 5 rows up 

Для использования в терминальном приложении: Поместите функцию copy(. ) в файл с именем clear.py в той же папке с вашим файлом main.py. Вот рабочий абстрактный (скелетный) пример из игрового приложения Tic Tac Toe (запущенного из терминального окна: python3 tictactoe .py):

from os import linesep class TicTacToe: def __init__(self): # Clear screen, but not calling line try: from clear import clear self.clear = clear self.clear(calling_line=False) except ImportError: self.clear = False self.rows = 0 # Track printed lines to clear # . self.moves = [' '] * 9 def do_print(self, *text, end=linesep): text = list(text) for i, v in enumerate(text[:]): text[i] = str(v) text = ' '.join(text) print(text, end=end) self.rows += text.count(linesep) + 1 def show_board(self): if self.clear and self.rows: self.clear(absolute=self.rows) self.rows = 0 self.do_print('Tic Tac Toe') self.do_print(''' | | | | | | ----------- | | | | | | ----------- | | | | | |'''.format(*self.moves)) def start(self): self.show_board() ok = input("Press to continue. ") self.moves = ['O', 'X'] * 4 + ['O'] self.show_board() ok = input("Press to close.") if __name__ == "__main__": TicTacToe().start() 

Объяснение: 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 вверх, а не просто перемещает все вверх относительно нижней части терминала.

Пользователи Ubuntu с Python 3.3: Поместите #!/usr/bin/env python3 в первую строку файла tictactoe.py. Щелкните правой кнопкой мыши на файле tictactoe.py => Свойства => Вкладка разрешений => Проверьте выполнение: Разрешить выполнение файла как программы . Дважды щелкните на файле => Нажмите кнопку Запустить в терминале. Если текущий каталог открытого терминала является каталогом файла tictactoe.py, вы также можете запустить файл с помощью ./tictactoe.py .

Поделиться 31 января 2014 в 01:45

В Windows вы можете использовать:

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

Нужно чтобы было выведено число 5. А через 3 секунды экран очистился.
Как это сделать?

Голосование за лучший ответ

import os
os.system(‘clear’)

Александр МокануУченик (220) 3 года назад

Black Afgano Просветленный (22262) Александр Мокану, если у вас Windows, то команда os.system(‘cls’)

Похожие вопросы

Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *