Любой способ очистить окно IDLE Python?


154

Я знаю, что есть похожая тема о консоли Python, но я не знаю, совпадают ли они. Я попробовал систему («очистить»), и она не сработала.

Как очистить окно IDLE Python?


10
это не дубликат, OP спрашивает о том, как очистить оболочку IDLE, а не консоль
Моха, всемогущий верблюд

1
Причина, по которой это не работает, заключается в том, что Python запускает новый сеанс оболочки и запускает там команду clear. Это также объясняет, почему cdне работает в system.os.
JKD

14
Удерживайте ctrl + jнекоторое время, а затем нажмите Enter, это будет лучший способ
ytpillai

1
@ytpillai, Ах, но это дает мне подсказку внизу. Решение, без сомнения, но все же вызывает некоторое удобство.
Джон Ред

Ответы:


97

«Cls» и «clear» - это команды, которые будут очищать терминал (то есть приглашение DOS или окно терминала). На скриншоте вы используете оболочку в IDLE, которая не будет зависеть от таких вещей. К сожалению, я не думаю, что есть способ очистить экран в IDLE. Лучшее, что вы можете сделать, это прокрутить экран вниз по множеству строк, например:

print "\n" * 100

Хотя вы могли бы поместить это в функцию:

def cls(): print "\n" * 100

А затем позвоните, когда это необходимо, как cls()


13
Это действительно очищает экран, но вы все равно получаете подсказку «>>>» в последней строке, а не сверху, что, я думаю, делает его менее неэффективным ... еще +1 для ясного экрана
Invictus

10
Python 3.4.2 - Мне пришлось print ("\n" * 100)
заключить

4
Это не очистит экран, я все еще могу прокрутить назад!
Эзотерик

2
ctrl + jтоже работает. Может быть полезным, включая это. stackoverflow.com/a/11993793/4871483
ytpillai

1
Обратите внимание, что это тег Python. Не зависит от версии. Для всех пользователей Python 3.xprint('\n'*100)
Luke

83

os.system('clear')работает на Linux. Если вы используете Windows, попробуйте os.system('CLS')вместо этого.

Вам нужно сначала импортировать ОС следующим образом:

import os

13
Система os.system ('CLS') работает в Windows. (Python 2.6). Получившийся экран очищается, показывая только «0», который, как я полагаю, является возвращаемым значением для CLS, вверху. Следующая строка имеет приглашение >>>.
MJV

35
это делает вызов os для cls во внешней командной строке и не взаимодействует с Idle
bunglestink

15
простоя это не консольное окно. Обе команды clear и cls работают на окнах консоли / терминала.
Брайан Оукли

16
Вопрос в том, чтобы «очистить экран в режиме
бездействия».

21
Почему за это проголосовали? Это откроет новую командную строку, очистит ее и закроет
ytpillai

39

Большинство ответов здесь очищают экран приглашения DOS с командами очистки, что не является вопросом. Другие ответы здесь, печатали пустые строки, чтобы показать эффект очистки экрана.

Самый простой ответ на этот вопрос

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


3
Это хороший, прямой и практический ответ на этот вопрос; закрыть в режиме ожидания, оставить файл открытым, запустить файл снова, и в режиме ожидания теперь есть новый экран.
Mike_K

@Mike_K, это может быть полезно, но не всегда. Прямо сейчас у меня разделенный экран (книга <|> простаивает). Когда я снова выполняю режим ожидания, новый экран приходит в положение / размеры по умолчанию. Так будет очень скучно.
sdlins

38

ctrl+ Lочищает экран в Ubuntu Linux.


Также на Red Hat / Fedora / CentOS
DtechNet

1
В Windows тоже, если вы используете IDLEx. Ура! Так счастлив, что наконец-то получил простое решение!
Джон Ред

Не работает в Ubuntu 18.04. Тем хуже здесь использование CTRL+ Jнесколько раз.
sdlins

@slinstj, который полностью закрыл его на окнах
Мубарек,

Добавлено в мой сегодняшний хак! Также работать как шарм в MacOS!
xtornasol512

21

Расширение для очистки оболочки можно найти в Issue6143 как «запрос функции». Это расширение включено в IdleX .


1
Это блестящее расширение для Python Idle. Спасибо вам большое!
Индраджит

19
>>> import os

>>>def cls():
...    os.system("clear")
...
>>>cls()

Это прекрасно. Также не печатается «0».


Хорошо, просто, делает то, что говорит. Или после import osпросто введите os.system("clear")хотя функция удобна, если вам часто нужно очистить экран.
Дэйв Эверитт

1
os.system («очистить») сработало. Это работает для меня, но я должен набрать "cls ()"
j0h

Когда я попытался это сделать, командная строка вернула <function cls at 0x024D25D0>, а консоль не
очистилась

Лучший ответ на данный момент
hello123

@ericgrosse, вам нужно набрать cls (), а не cls
Banoona


7

Способ выполнения команд в Python 2.4+ - использовать модуль подпроцесса . Вы можете использовать его так же, как вы используете os.system.

import subprocess
subprocess.call("clear") # linux/mac
subprocess.call("cls", shell=True) # windows

Если вы выполняете это в консоли python, вам нужно что-то сделать, чтобы скрыть возвращаемое значение (для одного os.systemили subprocess.call), например, присвоить его переменной:

cls = subprocess.call("cls", shell=True)

Traceback (последний вызов был последним): файл "<pyshell # 1>", строка 1, в <module> subprocess.call ("cls"), файл "C: \ Python26 \ lib \ subprocess.py", строка 444, в call return Popen (* popenargs, ** kwargs) .wait () Файл "C: \ Python26 \ lib \ subprocess.py", строка 595, в файле init errread, errwrite) Файл "C: \ Python26 \ lib \ subprocess.py ", строка 804, в _execute_child startupinfo) WindowsError: [Ошибка 2] Системе не удается найти указанный файл
пожрал elysium

1
Хм .. Вот что я получаю за то, что я не использую Windows и, следовательно, не могу ее протестировать. Попробуйте subprocess.call ("cls", shell = True)
Rudd Zwolinski


4

Файл -> Новое окно

В новом окне **

Выполнить -> Python Shell

Проблема этого метода в том, что он очистит все, что вы определили, например переменные.

Кроме того, вы должны просто использовать командную строку.

открыть командную строку

введите "cd c: \ python27"

введите "python example.py", вы должны отредактировать его, используя IDLE, когда он не находится в интерактивном режиме. Если вы находитесь в оболочке Python, файл -> новое окно.

Обратите внимание, что example.py должен находиться в том же каталоге, что и C: \ python27, или в любом другом каталоге, в котором установлен Python.

Затем отсюда вы просто нажимаете клавишу со стрелкой ВВЕРХ на клавиатуре. Вы просто редактируете example.py, используете CTRL + S, затем возвращаетесь в командную строку, нажимаете клавишу со стрелкой ВВЕРХ, нажимаете ввод.

Если командная строка становится слишком загруженной, просто введите «clr»

Команда "clr" работает только с командной строкой, она не будет работать с IDLE.


3
Просто говорю, но я полагаю, что вопрос задает вопрос: «Как вы очищаете экран В ПОСТОЯННОМ ОТ ПИСЬМЕННОГО СЦЕНАРИИ?
Élektra

Запуск нового файла и запуск оболочки Python в нем оказались единственной доступной для меня опцией, больше ничего не получалось. Спасибо!
Сергей Захаров

4

Кажется, что нет прямого способа очистки консоли IDLE.

Один из способов сделать это - использовать exit () в качестве последней команды в моем скрипте Python (.py). Когда я запускаю скрипт, он всегда открывает новую консоль и запрашивает перед выходом.

Перевернутая: Консоль запускается заново каждый раз, когда выполняется скрипт. Недостаток: Консоль запускается заново каждый раз, когда выполняется скрипт.


2

Вы можете сделать скрипт AutoHotKey .

Чтобы установить ctrl-r на горячую клавишу для очистки оболочки:

^r::SendInput print '\n' * 50 {Enter}

Просто установите AutoHotKey, поместите вышеуказанное в файл с именем idle_clear.ahk, запустите файл, и ваша горячая клавиша активна.


2

Ни одно из этих решений не работало для меня в Windows 7 и в IDLE. Завелась с помощью PowerShell, запустив внутри него Python и выйдя, чтобы вызвать «cls» в PowerShell, чтобы очистить окно.

CONS: Предполагается, что Python уже находится в переменной PATH. Кроме того, это очищает ваши переменные Python (хотя и перезапускает оболочку).

PROS: Сохраняет все настройки окна (цвет, размер шрифта).


2

Кажется, это невозможно сделать без какой-либо внешней библиотеки.

Альтернативный способ, если вы используете окна и не хотите открывать и закрывать оболочку каждый раз, когда хотите очистить ее, - это использовать командную строку windows.

  • Введите pythonи нажмите Enter, чтобы перевести командную строку Windows в режим ожидания Python (убедитесь, что Python установлен).

  • Введите quit()и нажмите Enter, чтобы вернуться в командную строку Windows.

  • Введите clsи нажмите Enter, чтобы очистить командную строку / оболочку Windows.


2

Я бы порекомендовал вам использовать Thonny IDE для Python. Его оболочка имеет опцию «Clear Shell», и вы также можете отслеживать переменные, созданные в отдельном списке. Его отладка очень хороша даже по сравнению с современными IDE. Вы также можете написать код в файле Python вместе с доступом к оболочке в том же месте.

И его легкий!


2

« команда + L » для MAC OS X.

« control + L » для Ubuntu

Очищает последнюю строку в интерактивном сеансе


Я не знал об этой функции, спасибо. Всегда пишите, что делает ваша команда.
Приянк Патхак

1

Как сказал mark.ribau, похоже, что нет способа очистить виджет Text в режиме ожидания. Нужно отредактировать EditorWindow.pyмодуль и добавить метод и пункт меню в классе EditorWindow, который выполняет что-то вроде:

self.text.tag_remove("sel", "1.0", "end")
self.text.delete("1.0", "end")

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


1

Лучший способ сделать это в Windows - использовать командную строку 'cmd' и получить доступ к каталогу python. Командная строка может быть найдена в меню Пуск> run> cmd

C:\>cd Python27
C:\Python27>python.exe
Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>import os
>>>os.system('cls')  #This will clear the screen and return the value 0

2
Просто говорю, но я полагаю, что вопрос задает вопрос: «Как очистить экран в режиме ожидания?». (Акцент на IN IDLE)
Élektra

1

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

for num in range(1,100):
    print("\n")

Работает, но у вас получится невероятно большое расстояние прокрутки, если вы хотите увидеть что-то ранее.
Élektra

Попробуйте уменьшить диапазон (1,10):
Tauseef

@Xenon Но если идея состоит в том, чтобы очистить окно, то у пользователя не должно быть возможности просматривать что-то ранее.
Сэм

0

Ваш скриншот показывает, что вы используете IDLE. cls/ clearне будет работать для вас.


5
Это не хороший ответ; OP не спрашивал «что не поможет мне очистить окно Python IDLE».
DeFazer

-1
from subprocess import call as c

def cls():

    c("cls",shell=True)

print([x for x in range(10000)])

cls()

Всякий раз, когда вы хотите очистить консоль, вызовите функцию cls, но учтите, что эта функция очистит экран в Windows, только если вы запускаете Python Script с помощью команды cmd, она не очистит буфер, если вы работаете с IDLE.


2
Просто говорю, но я полагаю, что вопрос задает вопрос: «Как вы очищаете экран В ПОСТОЯННОМ ОТ ПИСЬМЕННОГО СЦЕНАРИИ?
Élektra

-1

Я получил это с:

import console 
console.clear()

если вы хотите сделать это в своем скрипте, или если вы находитесь в консоли, просто нажмите clear () и нажмите ввод. Это работает на Pyto на iPhone. Это может зависеть от консоли, хотя.


В consoleIDLE нет модуля.
AKX

Это говорит, что нет консольного модуля.
Муса

-2

Это работает для меня в Windows:

print chr(12)


chr не распознается в терминале IDLE
wbadry

Спасибо, Джоэл. У меня тоже сработало.

У меня тоже работает в Windows, Spyder IDE, и, похоже, самый простой код для достижения желаемого результата. {chr (12) формируется)
Ян

-4

Если вы используете терминал (я использую Ubuntu), просто используйте комбинацию CTRL+ lс клавиатуры, чтобы очистить скрипт Python, даже если он очищает скрипт терминала ...


1
Просто говорю, но вопрос в том, чтобы очистить экран В ПОСТОЯННОМ ОТ ПИФОННОГО СКРИПТА.
Élektra

ОП указала IDLE.
wbadry

-5

Для этого не нужно писать собственную функцию! Python имеет встроенную понятную функцию.

Введите в командной строке следующее:

shell.clear()

Если использовать IPythonдля Windows, это

cls()

4
Есть ли какой-то импорт, необходимый для этого, потому что это не сработало для меня. Если речь идет об импорте, вы должны указать его в своем ответе. Кроме того, вопрос об очистке подсказки IN IDLE .
Élektra
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.