Как очистить консоль интерпретатора?
Как и любая консоль, через некоторое время видимое отставание прошлых команд и отпечатков становится загроможденным, а иногда и запутанным при повторном запуске одной и той же команды несколько раз. Мне интересно, если и как, чтобы очистить консоль интерпретатора Python.
Я слышал о выполнении системного вызова и либо вызова cls
на clear
на Linux, но я надеялся, что есть что-то, что я мог бы приказать самому интерпретатору.
Примечание: Я работаю на Windows, поэтому Ctrl+L не работает.
30 ответов:
Как вы упомянули, Вы можете сделать системный вызов:
Для Windows
>>> import os >>> clear = lambda: os.system('cls') >>> clear()
для Linux лямбда становится
>>> clear = lambda: os.system('clear')
здесь что-то удобное, что немного более кросс-платформенный
import os def cls(): os.system('cls' if os.name=='nt' else 'clear') # now, to clear the screen cls()
Ну, вот быстрый Хак:
>>> clear = "\n" * 100 >>> print clear >>> ...do some other stuff... >>> print clear
или чтобы сохранить некоторые набрав, поместите этот файл в свой путь поиска python:
# wiper.py class Wipe(object): def __repr__(self): return '\n'*1000 wipe = Wipe()
тогда вы можете сделать это из интерпретатора все, что вам нравится:)
>>> from wiper import wipe >>> wipe >>> wipe >>> wipe
хотя это более старый вопрос, я думал, что внесу что-то суммирующее то, что я думаю, было лучшим из других ответов, и добавлю морщину, предложив вам поместить эти команды в файл и установить переменную среды PYTHONSTARTUP, чтобы указать на нее. Поскольку я нахожусь на Windows в данный момент, это немного предвзято, но может быть легко наклонено в другом направлении.
вот некоторые статьи, которые я нашел, которые описывают, как установить переменные среды на Windows:
когда использовать sys.путь.добавить и при изменении %PYTHONPATH% достаточно
как управлять переменными среды в Windows XP
настройка системных и пользовательских переменных среды
как использовать глобальные системные переменные среды в Windowsкстати, не ставьте кавычки вокруг пути к файлу, даже если в нем есть пробелы оно.
в любом случае, вот мой взгляд на код, чтобы вставить (или добавить к существующему) скрипт запуска Python:
# ==== pythonstartup.py ==== # add something to clear the screen class cls(object): def __repr__(self): import os os.system('cls' if os.name == 'nt' else 'clear') return '' cls = cls() # ==== end pythonstartup.py ====
кстати, вы также можете использовать @триптих-это
__repr__
трюк, чтобы изменитьexit()
наexit
(и то же самое для его псевдонимаquit
):class exit(object): exit = exit # original object def __repr__(self): self.exit() # call original return '' quit = exit = exit()
наконец, вот что-то еще, что меняет основную подсказку интерпретатора от
>>>
до cwd+>>>
:class Prompt: def __str__(self): import os return '%s >>> ' % os.getcwd() import sys sys.ps1 = Prompt() del sys del Prompt
У вас есть несколько способов сделать это на Windows:
1. Использование сочетания клавиш:
Press CTRL + L
2. Использование метода системного вызова:
import os cls = lambda: os.system('cls') cls()
3. Использование новой строки печати 100 раз:
cls = lambda: print('\n'*100) cls()
мой способ сделать это-написать такую функцию:
import os import subprocess def clear(): if os.name in ('nt','dos'): subprocess.call("cls") elif os.name in ('linux','osx','posix'): subprocess.call("clear") else: print("\n") * 120
затем вызов
clear()
для очистки экрана. это работает на windows, osx, linux, bsd... все осы.
стеклоочиститель-это круто, хорошо, что мне не нужно набирать "() " вокруг него. Вот небольшое изменение к нему
# wiper.py import os class Cls(object): def __repr__(self): os.system('cls') return ''
использование довольно просто:
>>> cls = Cls() >>> cls # this will clear console.
здесь окончательное решение слияние все остальные ответы. Особенности:
- вы можете копировать-вставить код в код или скрипт.
вы можете использовать это как вам нравится:
>>> clear() >>> -clear >>> clear # <- but this will only work on a shell
вы можете импорт модуль:
>>> from clear import clear >>> -clear
вы можете вызов это как сценарий:
$ python clear.py
это по-настоящему мультиплатформенным; если он не может распознать вашу систему
(ce
,nt
,dos
илиposix
) он вернется к печати пустых строк.
вы можете скачать [полный] файл здесь:https://gist.github.com/3130325
Или если вы просто ищете код:class clear: def __call__(self): import os if os.name==('ce','nt','dos'): os.system('cls') elif os.name=='posix': os.system('clear') else: print('\n'*120) def __neg__(self): self() def __repr__(self): self();return '' clear=clear()
использовать в режиме ожидания. Он имеет много удобных функций. Ctrl+F6, например, сбрасывает консоль. Закрытие и открытие консоли-это хорошие способы ее очистки.
Я использую iTerm и родное приложение терминала для Mac OS.
Я просто нажимаю ⌘ + k
Я не уверен, что "оболочка" Windows поддерживает это, но на Linux:
print "3[2J"
https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_codes
по-моему звоню
cls
Сos
это вообще плохая идея. Представьте себе, если мне удастся изменить команду cls или clear в вашей системе, и вы запустите свой скрипт от имени администратора или root.
Я использую MINGW / BASH на Windows XP, SP3.
(вставь .pythonstartup)
# Мой ctrl-l уже работал, но это может помочь кому-то еще
# листья строке в нижней части окна...
импорт с readline
readline.parse_and_bind ('\C-l: clear-screen')# это работает в BASH, потому что у меня это есть .inputrc, но для некоторых
# причина, по которой он падает, когда я вхожу Питон
readline.parse_and_bind ('\C-y: kill-whole-line')
Я больше не мог печатать "exit ()" и был в восторге от трюков Мартино/триптиха:
Я немного подправил его, Хотя (вставил его .pythonstartup)
class exxxit(): """Shortcut for exit() function, use 'x' now""" quit_now = exit # original object def __repr__(self): self.quit_now() # call original x = exxxit()
Py2.7.1>help(x) Help on instance of exxxit in module __main__: class exxxit | Shortcut for exit() function, use 'x' now | | Methods defined here: | | __repr__(self) | | ---------------------------------------------------------------------- | Data and other attributes defined here: | | quit_now = Use exit() or Ctrl-Z plus Return to exit
здесь два хороших способа сделать это:
1.
import os # Clear Windows command prompt. if (os.name in ('ce', 'nt', 'dos')): os.system('cls') # Clear the Linux terminal. elif ('posix' in os.name): os.system('clear')
2.
import os def clear(): if os.name == 'posix': os.system('clear') elif os.name in ('ce', 'nt', 'dos'): os.system('cls') clear()
вот кросс-платформенный (Windows / Linux / Mac/, вероятно, другие) фрагмент версии, который я сделал, объединив информацию, найденную в этом вопросе:
import os clear = lambda: os.system('cls' if os.name=='nt' else 'clear') clear()
команда ОС
clear
в Linux иcls
в Windows выводит "волшебную строку", которую вы можете просто распечатать. Чтобы получить строку, выполните команду с помощью popen и сохраните ее в переменной для последующего использования:from os import popen with popen('clear') as f: clear = f.read() print clear
на моей машине строка
'\x1b[H\x1b[2J'
.
Я новичок в python (действительно очень новый) и в одной из книг, которые я читаю, чтобы познакомиться с языком они учат, как создать эту маленькую функцию, чтобы очистить консоль от видимого отставания и прошлых команд и печатает:
открыть оболочку / создать новый документ / создать функцию следующим образом:
def clear(): print('\n' * 50)
сохраните его в папке lib в вашем каталоге python (мой C:\Python33\Lib) В следующий раз, когда вы nedd, чтобы очистить консоль просто вызовите функцию с:
clear()
вот именно. PS: вы можете назвать свою функцию так, как хотите. Iv 'видел людей, использующих "wiper" "wipe" и вариации.
я мог бы опоздать на часть, но вот очень простой способ сделать это
тип:
def cls(): os.system("cls")
Так что когда-нибудь вы хотите, чтобы очистить экран просто тип в код
cls()
лучший способ! (Кредит: https://www.youtube.com/watch?annotation_id=annotation_3770292585&feature=iv&src_vid=bguKhMnvmb8&v=LtGEp9c6Z-U)
EDIT: я только что прочитал "windows", это для пользователей linux, извините.
в bash:
#!/bin/bash while [ "0" == "0" ]; do clear $@ while [ "$input" == "" ]; do read -p "Do you want to quit? (y/n): " -n 1 -e input if [ "$input" == "y" ]; then exit 1 elif [ "$input" == "n" ]; then echo "Ok, keep working ;)" fi done input="" done
сохранить его как "whatyouwant.sh", chmod +x затем запустить:
./whatyouwant.sh python
или что-то другое, чем python (простоя, что угодно). Это спросит вас, действительно ли вы хотите выйти, если не повторите python (или команду, которую вы дали в качестве параметра).
это очистит все, экран и все переменные/объект/все, что вы создали/импортировали в python.
в Python просто введите exit (), когда вы хотите выйти.
это должно быть кросс-платформенным, а также использует предпочтительный
subprocess.call
вместоos.system
по состоянию на theos.system
docs. Должно работать в Python >= 2.4.import subprocess import os if os.name == 'nt': def clearscreen(): subprocess.call("cls", shell=True) return else: def clearscreen(): subprocess.call("clear", shell=True) return
ОК, так что это гораздо менее технический ответ, но я использую плагин Python для Notepad++, и оказывается, вы можете просто очистить консоль вручную, щелкнув правой кнопкой мыши на ней и нажав "очистить". Надеюсь, это поможет кому-то там!
>>> ' '*80*25
обновление: 80x25 вряд ли будет размером консольных окон, поэтому, чтобы получить реальные размеры консоли, используйте функции из пейджер модуль. Python не предоставляет ничего подобного из основного дистрибутива.
>>> from pager import getheight >>> '\n' * getheight()
магические строки упоминаются выше - я считаю, что они поступают из базы данных terminfo:
http://www.google.com/?q=x#q=terminfo
http://www.google.com/?q=x#q=tput + команда+в + unix
$ tput clear| od-t x1z 0000000 1b 5b 48 1b 5b 32 4a >.[H.[2J
Я использую Spyder (Python 2.7) и для очистки консоли интерпретатора я использую либо
% clear
Это заставляет командную строку идти наверх, и я не буду видеть предыдущие старые команды.
или я нажимаю " option "в среде консоли и выбираю" Restart kernel", который удаляет все.