Любой способ очистить окно 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.

shxfee
источник
Также на 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
9

Похоже, что нет способа очистить буфер «оболочки» IDLE.

Марк Рибау
источник
1
bugs.python.org/issue6143 имеет расширение для очистки оболочки и входит в состав IdleX.
Роджер
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: Сохраняет все настройки окна (цвет, размер шрифта).

Draghon
источник
2

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

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

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

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

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

Ari
источник
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")

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

tzot
источник
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")
Tauseef
источник
Работает, но у вас получится невероятно большое расстояние прокрутки, если вы хотите увидеть что-то ранее.
Élektra
Попробуйте уменьшить диапазон (1,10):
Tauseef
@Xenon Но если идея состоит в том, чтобы очистить окно, то у пользователя не должно быть возможности просматривать что-то ранее.
Сэм
0

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

orip
источник
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, даже если он очищает скрипт терминала ...

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

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

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

shell.clear()

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

cls()
Майкл Фогель
источник
4
Есть ли какой-то импорт, необходимый для этого, потому что это не сработало для меня. Если речь идет об импорте, вы должны указать его в своем ответе. Кроме того, вопрос об очистке подсказки IN IDLE .
Élektra