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


Как и любая консоль, через некоторое время видимое отставание прошлых команд и отпечатков становится загроможденным, а иногда и запутанным при повторном запуске одной и той же команды несколько раз. Мне интересно, если и как, чтобы очистить консоль интерпретатора Python.

Я слышал о выполнении системного вызова и либо вызова cls на clear на Linux, но я надеялся, что есть что-то, что я мог бы приказать самому интерпретатору.

Примечание: Я работаю на Windows, поэтому Ctrl+L не работает.

30 241

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()

быстрый и простой способ, без сомнения, является 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()

использовать в режиме ожидания. Он имеет много удобных функций. 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()

Как насчет этого для ясного

- 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 'видел людей, использующих "wiper" "wipe" и вариации.

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

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

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 (простоя, что угодно). Это спросит вас, действительно ли вы хотите выйти, если не повторите python (или команду, которую вы дали в качестве параметра).

это очистит все, экран и все переменные/объект/все, что вы создали/импортировали в python.

в Python просто введите exit (), когда вы хотите выйти.

это должно быть кросс-платформенным, а также использует предпочтительный subprocess.call вместо os.system по состоянию на the 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

ОК, так что это гораздо менее технический ответ, но я использую плагин 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", который удаляет все.

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

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

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

print("3[H3[J")

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

clear = Lambda: os.система('ясно') ясно ()'