Просто быстрый вопрос:
как очистить экран в оболочке? Я видел такие способы:
import os
os.system('cls')
Это просто открывает cmd окна, очищает экран и закрывается, но я хочу, чтобы окно оболочки было очищено
(PS: я не знаю, это помогает, но я использую версию 3.3.2 Python)
Спасибо :)
Ответы:
Для macOS / OS X вы можете использовать модуль подпроцесса и вызывать cls из оболочки:
import subprocess as sp sp.call('cls', shell=True)
Чтобы «0» не отображался в верхней части окна, замените вторую строку на:
tmp = sp.call('cls', shell=True)
Для Linux вы должны заменить
cls
команду наclear
tmp = sp.call('clear', shell=True)
источник
import subprocess as sp sp.call('clear',shell=True)
работает, за исключением того, что0
в верхней части окна терминала есть значок.ctrl+L
sp.call('cls', shell=True);
А как насчет ярлыка CTRL+ L?
Он работает для всех оболочек, например Python, Bash, MySQL, MATLAB и т. Д.
источник
import os os.system('cls') # For Windows os.system('clear') # For Linux/OS X
источник
os.system('clear')
для терминалов Mac OS X (подтверждена работа с оболочкой по умолчаниюbash
, а также дляcsh
).То, что вы ищете, можно найти в модуле curses.
т.е.
import curses # Get the module stdscr = curses.initscr() # initialise it stdscr.clear() # Clear the screen
Важная заметка
Важно помнить, что перед любым выходом вам необходимо сбросить терминал в нормальный режим, это можно сделать с помощью следующих строк:
curses.nocbreak() stdscr.keypad(0) curses.echo() curses.endwin()
Если вы этого не сделаете, вы получите странное поведение. Чтобы это всегда происходило, я бы предложил использовать модуль atexit, например:
import atexit @atexit.register def goodbye(): """ Reset terminal from curses mode on exit """ curses.nocbreak() if stdscr: stdscr.keypad(0) curses.echo() curses.endwin()
Наверное, подойдет.
источник
stdscr = curses.initscr()
очищает экран,stdscr.clear()
но ничего не делает. При использовании Python3.4 экран очищается, но теряетсяstdscr = curses.initscr()
способность терминала обрабатывать символы новой строки. Когда я нажимаю Enter несколько раз, появляется следующее:>>> >>> >>> >>>
и так далее. Я все еще могу вводить команды, но они не отображаются. Кроме того, такое поведение сохраняется даже при использованииexit()
Python. ИЗБЕГАЙТЕ ИСПОЛЬЗОВАНИЯ!curses
модуль может иметь проблемы с совместимостью (Windows, Mac или Linux)? Я могу подтвердить, что эта проблема возникает, по крайней мере, на двух разных терминалах Mac. Такое поведение сохраняется в BASH, но не в CSH. Хм .... Как вы думаете, мне следует связаться с разработчиком curses, разработчиком оболочки или просто спросить сообщество SO? Еще раз спасибо!Вот несколько вариантов, которые вы можете использовать в Windows
Первый вариант:
import os cls = lambda: os.system('cls') >>> cls()
Второй вариант:
cls = lambda: print('\n' * 100) >>> cls()
Третий вариант, если вы находитесь в окне Python REPL:
источник
Помимо того, что это отличная универсальная библиотека CLI, она
click
также предоставляет независимую от платформыclear()
функцию:import click click.clear()
источник
Эта функция работает в любой ОС (Unix, Linux, macOS и Windows)
Python 2 и Python 3.
import platform # For getting the operating system name import subprocess # For executing a shell command def clear_screen(): """ Clears the terminal screen. """ # Clear command as function of OS command = "cls" if platform.system().lower()=="windows" else "clear" # Action return subprocess.call(command) == 0
В Windows это команда
cls
, в unix-подобных системах это командаclear
.platform.system()
возвращает название платформы. Ex.'Darwin'
для macOS.subprocess.call()
выполняет системный вызов. Ex.subprocess.call(['ls','-l'])
источник
Более простой способ очистить экран в Python - использовать Ctrl+, Lхотя он работает как для оболочки, так и для других программ.
источник
Если вы используете терминал linux для доступа к python, то cntrl + l - лучшее решение для очистки экрана.
источник
Я использую класс, который просто использует один из вышеперечисленных методов за кулисами ... Я заметил, что он работает в Windows и Linux ... Мне нравится его использовать, потому что легче набрать clear () вместо system ('clear' ) или os.system ('очистить')
pip3 install clear-screen from clear_screen import clear
а затем, когда вы хотите очистить оболочку:
clear()
источник
с использованием windows 10 и pyhton3.5 я протестировал много кодов, и ничто не помогло мне больше, чем это:
Сначала определите простую функцию, эта функция будет печатать 50 новых строк; (число 50 будет зависеть от того, сколько строк вы видите на экране, поэтому вы можете изменить это число)
def cls(): print ("\n" * 50)
затем просто вызывайте его столько раз, сколько хотите или нужно
cls()
источник
Command+K
отлично работает в OSX для очистки экрана.Shift+Command+K
чтобы очистить только буфер прокрутки.источник
import curses stdscr = curses.initscr() stdscr.clear()
источник
Подпроцесс позволяет вызывать "cls" для Shell.
import subprocess cls = subprocess.call('cls',shell=True)
Это настолько просто, насколько я могу это сделать. Надеюсь, это сработает для вас!
источник
вы можете использовать Windows или ОС Linux
import os os.system('cls') os.system('clear')
вы можете использовать модуль подпроцесса
import subprocess as sp x=sp.call('cls',shell=True)
источник
os.system('cls')
отлично работает, когда я их открываю. Он открывается в стиле cmd.источник
Вместо того, чтобы импортировать все проклятия или обходиться только для получения одного управляющего символа, вы можете просто использовать (в Linux / macOS):
print(chr(27) + "[2J")
(Источник: Очистить терминал на Python )
источник
Вот как сделать свою собственную команду
cls
или,clear
которая будет работать без явного вызова какой-либо функции!Мы воспользуемся тем фактом, что консоль python вызывает
repr()
отображение объектов на экране. Это особенно полезно, если у вас есть собственная настраиваемая оболочка Python (например, с-i
опцией) и для нее есть сценарий предварительной загрузки. Это то, что вам нужно:import os class ScreenCleaner: def __repr__(self): os.system('cls') # This actually clears the screen return '' # Because that's what repr() likes cls = ScreenCleaner()
Используйте
clear
вместо,cls
если вы работаете в Linux (как вos
команде, так и в имени переменной)!Вот если вы просто напишете
cls
илиclear
в консоли - очистит! Даже неcls()
илиclear()
- просто необработанная переменная. Это потому, что python вызовет егоrepr(cls)
для печати, что, в свою очередь, вызовет нашу__repr__
функцию.Давайте проверим это:
>>> df;sag Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'df' is not defined >>> sglknas Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'sglknas' is not defined >>> lksnldn Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'lksnldn' is not defined >>> cls
И экран чистый!
Чтобы уточнить - приведенный выше код необходимо либо импортировать в консоль, как это
from somefile import cls
Или предварительно загрузите что-то вроде:
python -i my_pre_loaded_classes.py
источник
Это лучший способ:
>>>import os >>>def cls(): os.system('cls') >>>cls()
источник
Для Python IDLE 3.8.1 вы можете перезапустить оболочку
CTRL + F6
В меню Щелкните меню Shell. Затем нажмите на опцию Restart Shell.
источник