Как очистить консоль интерпретатора?
Как и большинство разработчиков Python, я обычно держу окно консоли открытым с интерпретатором Python, работающим для тестирования команд, dir (), help () и т. д.
Как и любая консоль, через некоторое время видимое отставание прошлых команд и отпечатков становится загроможденным, а иногда запутанным при повторном запуске одной и той же команды несколько раз. Мне интересно, если и как очистить консоль интерпретатора 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()
наконец, вот что-то еще, что изменяет основную подсказку интерпретатора от >>>
to 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. Использование метода system invoke:
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()
использовать idle. Он имеет много удобных функций. Сочетания Клавиш 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 в вашей системе, и вы запустите сценарий как admin или root.
Я использую MINGW / BASH в Windows XP, SP3.
(вставь .pythonstartup)
# Мой ctrl-l уже работал, но это может помочь кому-то другому
# листья строке в нижней части окна...
импорт с readline
с readline.parse_and_bind ('\C-l: очистить экран')
# это работает в 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 'видел людей, использующих "стеклоочиститель ""протирать" и вариации.
Я могу опоздать на части, но вот очень простой способ сделать это
тип:
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 (idle, что угодно). Это спросит вас, действительно ли вы хотите выйти, если не перезапустить python (или команду, которую вы дали в качестве параметра).
это очистит все, экран и все переменные/объект/все, что вы создали/импортировали в python.
в Python просто введите exit (), когда вы хотите выйти.
это должно быть кросс-платформенным, а также использует предпочтительный subprocess.call
вместо os.system
по состоянию на на os.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
OK, так что это гораздо менее технический ответ, но я использую плагин 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 + команда+in + unix
$ tput clear / od-t x1z 0000000 1b 5b 48 1b 5b 32 4a >.[Н. [2Д
Я использую Spyder (Python 2.7) и для очистки консоли интерпретатора я использую либо
%clear
Это заставляет командную строку идти наверх, и я не буду видеть предыдущие старые команды.
или я нажимаю " option "в среде консоли и выбираю" Restart kernel", который удаляет все.
Это самая простая вещь, которую вы можете сделать, и она не требует каких-либо дополнительных библиотек. Он очистит экран и вернется >>>
в левом верхнем углу.
print("3[H3[J")