Как очистить консоль интерпретатора?

Как и большинство разработчиков 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()

быстрый и простой способ, без сомнения, является Ctrl+L.

Это то же самое для OS X на терминале.


мой способ сделать это-написать такую функцию:

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.

здесь окончательное решение слияние все остальные ответы. Особенности:

  1. вы можете копировать-вставить код в код или скрипт.
  2. вы можете использовать это как вам нравится:

    >>> clear()
    >>> -clear
    >>> clear  # <- but this will only work on a shell
    
  3. вы можете импорт модуль:

    >>> from clear import clear
    >>> -clear
    
  4. вы можете вызов это как сценарий:

    $ python clear.py
    
  5. это по-настоящему мультиплатформенным; если он не может распознать вашу систему
    (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

- os.system('cls')

Это примерно так же коротко, как может быть!


команда ОС 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 'видел людей, использующих "стеклоочиститель ""протирать" и вариации.


Я нашел самый простой способ-просто закрыть окно и запустить модуль/скрипт, чтобы открыть раковину.


просто использовать это..

print '\n'*1000


Я могу опоздать на части, но вот очень простой способ сделать это

тип:

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", который удаляет все.


просто введите

import os
os.system('cls') # Windows
os.system('clear') # Linux, Unix, Mac OS X

Это самая простая вещь, которую вы можете сделать, и она не требует каких-либо дополнительных библиотек. Он очистит экран и вернется >>> в левом верхнем углу.

print("3[H3[J")

самый простой способ '>>>импорт ОС

clear = лямбда: ОС.система('ясно') clear ()'