Как очистить консоль переводчика? - PullRequest
277 голосов
/ 06 февраля 2009

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

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

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

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

Ответы [ 34 ]

5 голосов
/ 09 мая 2016

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

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

4 голосов
/ 19 ноября 2018

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

import os
os.system('clear')

для окон

os.system('cls')
4 голосов
/ 06 февраля 2009

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

3 голосов
/ 28 мая 2018

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

print("\033[H\033[J")
3 голосов
/ 28 июня 2015

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

print "\033[2J"

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

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

2 голосов
/ 11 декабря 2011

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

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

print clear

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

2 голосов
/ 08 ноября 2011

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

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

# Это работает в BASH, потому что оно есть и в .inputrc, но для некоторых
# причина, по которой меня бросают, когда я вхожу в Python
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
2 голосов
/ 01 сентября 2011

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

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()
1 голос
/ 08 апреля 2015

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

% ясно

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

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

1 голос
/ 19 мая 2014

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

print '\n'*1000

...