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

Как и большинство разработчиков Python, я обычно держу консольное окно открытым с запущенным интерпретатором Python для тестирования команд, dir(), help() stuff и т.д.

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

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

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

Ответ 1

Как вы упомянули, вы можете выполнить системный вызов:

Для Windows

>>> import os
>>> clear = lambda: os.system('cls')
>>> clear()

Для Linux лямбда становится

>>> clear = lambda: os.system('clear')

Ответ 2

здесь что-то удобное, что немного больше кросс-платформенного

import os

def cls():
    os.system('cls' if os.name=='nt' else 'clear')

# now, to clear the screen
cls()

Ответ 3

Ну, вот быстрый хак:

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

Ответ 4

Хотя это более старый вопрос, я думал, что внес свой вклад в то, что я считаю лучшим из других ответов, и добавьте свой собственный морщин, предложив вам вставить эти команды в файл и установить PYTHONSTARTUP чтобы указать на нее. Так как я нахожусь в Windows на данный момент, он слегка смещен таким образом, но может легко наклоняться в другом направлении.

Здесь некоторые статьи, которые я нашел, описывают, как устанавливать переменные среды в Windows:
Когда использовать sys.path.append и при изменении% PYTHONPATH% достаточно
Как управлять переменными среды в Windows XP
Настройка переменных системы и пользовательской среды
Как использовать переменные глобальной системной среды в Windows

BTW, не ставьте кавычки вокруг пути к файлу, даже если в нем есть пробелы.

Во всяком случае, здесь я беру код, чтобы добавить (или добавить к существующему) скрипт запуска 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

Ответ 5

У вас есть несколько способов сделать это в Windows:

1. Использование сочетания клавиш:

Press CTRL + L

2. Использование метода вызова системы:

import os
cls = lambda: os.system('cls')
cls()

3. Использование новой строки печати 100 раз:

cls = lambda: print('\n'*100)
cls()

Ответ 6

Самый быстрый и простой способ - это Ctrl + L.

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

Ответ 7

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

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... все ОС.

Ответ 8

Стеклоочиститель круто, хорошо, что мне не нужно набирать '()' вокруг него. Вот небольшая вариация к ней

# wiper.py
import os
class Cls(object):
    def __repr__(self):
        os.system('cls')
        return ''

Использование довольно просто:

>>> cls = Cls()
>>> cls # this will clear console.

Ответ 9

Вот кросс-платформенный (Windows/Linux/Mac/, вероятно, другие, которые вы можете добавить в проверке if) фрагмент кода, который я сделал, объединяя информацию, найденную в этом вопросе:

import os
clear = lambda: os.system('cls' if os.name=='nt' else 'clear')
clear()

Та же идея, но с ложкой синтаксического сахара:

import subprocess   
clear = lambda: subprocess.call('cls||clear', shell=True)
clear()

Ответ 10

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

  • Вы можете скопировать-вставить код в свою оболочку или script.
  • Вы можете использовать по своему усмотрению:

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

    >>> from clear import clear
    >>> -clear
    
  • Вы можете вызвать его как script:

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

Ответ 11

Я использую iTerm и родное приложение терминала для Mac OS.

Я просто нажимаю ⌘ + k

Ответ 12

Используйте простоя. Он имеет много удобных функций. Ctrl+F6, например, сбрасывает консоль. Закрытие и открытие консоли - это хорошие способы ее очистки.

Ответ 13

для пользователя Mac внутри консоли типа Python

import os
os.system('clear')

для окон

os.system('cls')

Ответ 14

Я не уверен, поддерживает ли Windows "оболочка", но в Linux:

print "\033[2J"

https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_codes

По-моему, вызов cls с os - это плохая идея вообще. Представьте, если мне удастся изменить команду cls или clear в вашей системе, и вы запустите свой script как admin или root.

Ответ 15

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

print("\033[H\033[J")

Ответ 16

Вот два хороших способа сделать это:

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

Ответ 17

Я использую MINGW/ BASH в Windows XP, SP3.

(вставьте это в .pythonstartup)
 # Мой ctrl-l уже работал, но это может помочь кому-то другому  # оставляет подсказку внизу окна, хотя...
import readline
readline.parse_and_bind ('\ C-l: clear-screen')

# Это работает в BASH, потому что у меня оно тоже .inputrc, но для некоторых  # причина, по которой он падает, когда я вхожу в Python
readline.parse_and_bind ('\ C-y: kill-whole-line')


Я больше не мог печатать "exit()" и был в восторге от трюков martineau/Triptych:

Я слегка его усовершенствовал (застрял в .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

Ответ 18

Команда OS clear в Linux и cls в Windows выводит "магическую строку", которую вы можете просто распечатать. Чтобы получить строку, выполните команду с помощью popen и сохраните ее в переменной для последующего использования:

from os import popen
with popen('clear') as f:
    clear = f.read()

print clear

На моей машине строка '\x1b[H\x1b[2J'.

Ответ 19

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

- os.system('cls')

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

Ответ 20

Я новичок в python (действительно очень новый), и в одной из книг, которые я читаю, чтобы познакомиться с языком, которым они учат, как создать эту небольшую функцию, чтобы очистить консоль видимого отставания и прошлых команд и печатает:

Открыть оболочку/Создать новый документ/Создать функцию следующим образом:

def clear():
    print('\n' * 50)

Сохраните его в папке lib в каталоге python (мой C:\Python33\Lib) В следующий раз, когда вам не удалось очистить консоль, просто вызовите функцию с помощью:

clear()

что он. PS: вы можете назвать свою функцию в любом случае. Я видел, как люди, использующие "очиститель", "вытирают" и изменяют.

Ответ 21

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

Ответ 22

просто используйте это.

print '\n'*1000

Ответ 23

Я использую Spyder (Python 2.7) и для очистки консоли интерпретатора я использую

% clear

который заставляет командную строку идти в верхнюю часть, и я не буду видеть предыдущие старые команды.

или я нажимаю "вариант" в среде Console и выбираю "Перезапустить ядро", которое удаляет все.

Ответ 24

Если это на Mac, то простой cmd + k должен сделать свое дело.

Ответ 26

EDIT: Я только что прочитал "окна", это для пользователей Linux, извините.


В bash:

#!/bin/bash

while [ "0" == "0" ]; do
    clear
    [email protected]
    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(), когда вы хотите выйти.

Ответ 27

Это должна быть кросс-платформа, а также использовать предпочтительный 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

Ответ 28

>>> ' '*80*25

UPDATE: 80x25 вряд ли будет размером с консольными окнами, поэтому, чтобы получить реальные размеры консоли, используйте функции pager. Python не предоставляет ничего подобного из основного распределения.

>>> from pager import getheight
>>> '\n' * getheight()

Ответ 29

ОК, так что это гораздо менее технический ответ, но я использую плагин Python для Notepad ++, и получается, что вы можете просто очистить консоль вручную, щелкнув правой кнопкой мыши на нем и щелкнув "clear". Надеюсь, это поможет кому-то там!