Будь-який спосіб очистити вікно IDLE пітона?


154

Я знаю, що існує аналогічна тема консолі python, але я не знаю, чи вони однакові. Я спробував систему ("ясно"), і вона тут не спрацювала.

Як очистити вікно IDLE пітона?


10
це не дублікат, ОП запитує про те, як очистити снаряд 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 - мені довелося зафіксувати «\ n» та * 100 у дужках, так що:print ("\n" * 100)
cody.codes

4
Це не очистить екран, я все ще можу прокрутити назад!
esoterik

2
ctrl + jтакож працює. Може бути корисним, включаючи це stackoverflow.com/a/11993793/4871483
ytpillai

1
Зауважте, що це тег python. Неможлива версія. Для всіх користувачів python 3.x цеprint('\n'*100)
Лука

83

os.system('clear')працює на Linux. Якщо у вас працює Windows, спробуйте os.system('CLS')натомість.

Спочатку потрібно імпортувати os так:

import os

13
Os.system ('CLS') працює в Windows. (Пітон 2.6). Очищений екран очищається, показуючи лише "0", на який я припускаю, що це повернене значення для CLS, вгорі. У наступному рядку є запит >>>
mjv

35
це робить виклик OS до cls у зовнішньому командному рядку та не взаємодіє з w / Idle
bunglestink

15
idle - це не консольне вікно. І windows, і cls працюють на вікнах консолі / терміналу.
Брайан Оуклі

16
Питання в тому, що "очистити екран в режимі бездіяльності", перераховані вище методи, безумовно, не працюють на моєму комп'ютері
Élektra

21
Чому це схвалено? Це відкриє новий командний рядок, очистить його та закриє
ytpillai

39

Більшість відповідей, тут робиться очищення екрана підказки DOS з командами очищення, що не в цьому питання. Іншими відповідями тут були друк порожніх рядків, щоб показати ефект очищення екрана.

Найпростіша відповідь на це питання

Очистити оболонку IDLE python неможливо без певної інтеграції зовнішнього модуля. Якщо ви дійсно хочете отримати порожню чисту свіжу оболонку, просто закрийте попередню оболонку і запустіть її знову


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, який закрив його взагалі на windows
Mubarek

Додано до моєї сьогоднішньої хаки! Також працюйте як шарм у 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

Коли я спробував це, командний рядок повернувся <функція cls у 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, в повернення виклику 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 = Істинно)
Rudd Zwolinski


4

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

У новому вікні **

Виконати -> Python Shell

Проблема цього методу полягає в тому, що він очистить усі визначені вами речі, наприклад змінні.

Крім того, вам слід просто використовувати командний рядок.

відкрити командний рядок

введіть "cd c: \ python27"

введіть "python example.py", ви повинні редагувати це за допомогою IDLE, коли він не знаходиться в інтерактивному режимі. Якщо ви знаходитесь в оболонці python, file -> new window.

Зауважте, що example.py повинен знаходитися в тій самій каталозі, що і C: \ python27, або будь-якій інший каталог, у якому встановлено python.

Тоді звідси ви просто натискаєте клавішу зі стрілкою вгору на клавіатурі. Ви просто редагуєте example.py, використовуєте CTRL + S, потім повертаєтесь до командного рядка, натискаєте клавішу зі стрілкою UP, натисніть клавішу Enter.

Якщо командний рядок стає занадто переповненим, просто введіть "clr"

Команда "clr" працює лише з командним рядком, вона не працюватиме з IDLE.


3
Просто кажучи, але я вважаю, що питання полягає в тому, як "як очистити екран В ІДНІЙ ВІД ВІД ПІТОВОГО СКРИПТУ.
Електра

Запуск нового файлу та запуск в ньому оболонки 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, щоб очистити вікно.

Мінус: припускає, що Python вже є в змінній PATH. Також це очищує ваші змінні Python (хоча це і перезапуск оболонки).

PROS: зберігає будь-яку налаштування вікна, яку ви зробили (колір, розмір шрифту).


2

Здається, це неможливо зробити без жодної зовнішньої бібліотеки.

Альтернативний спосіб, якщо ви використовуєте Windows, і не хочете відкривати та закривати оболонку кожного разу, коли ви хочете очистити її, використовуючи командний рядок Windows.

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

  • Введіть quit()та натисніть клавішу Enter, щоб повернути її до командного рядка Windows.

  • Введіть clsта натисніть Enter, щоб очистити командний рядок / оболонку windows.


2

Я б рекомендував вам використовувати Thonny IDE для Python. Це оболонка має опцію "Очистити оболонку", і ви також можете відстежувати змінні, створені в окремому списку. Це налагодження дуже добре навіть у порівнянні з сучасними IDE. Ви також можете записати код у файл python разом із доступом до оболонки в одному місці.

І його легка вага!


2

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

" контроль + L " для Ubuntu

Очищає останній рядок на інтерактивному сеансі


Я не знав про цю функцію, дякую Завжди пишіть, що робить ваша команда.
Priyank Pathak

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)
Електра

1

використовуй це

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

Працює, але ви закінчуєте неймовірно велику відстань прокрутки, якщо хочете щось побачити раніше.
Електра

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

@Xenon Але якщо ідея очистити вікно, то користувач не повинен мати можливість переглядати щось раніше.
Сем

0

На екрані екрана показано, що ви використовуєте IDLE. cls/ clearне працюватиме для вас.


5
Це не гарна відповідь; ОП не запитувала "що НЕ допоможе мені очистити вікно IDLE Python".
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
Просто кажучи, але я вважаю, що питання полягає в тому, як "як очистити екран В ІДНІЙ ВІД ВІД ПІТОВОГО СКРИПТУ.
Електра

-1

Я отримав це з:

import console 
console.clear()

якщо ви хочете зробити це у вашому сценарії або якщо ви знаходитесь у консолі, просто натисніть clear () та натисніть клавішу Enter. Це працює на Pyto на iPhone. Це може залежати від консолі.


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

Він говорить про відсутність консольного модуля.
Муса

-2

Це працює для мене в Windows:

print chr(12)


chr не впізнається в терміналі IDLE
wbadry

Дякую, Джоел. Працював і для мене.

Для мене працює і в Windows, Spyder IDE, і, здається, це найпростіший код для досягнення бажаного результату. {chr (12) є formfeed}
Ян

-4

Якщо ви використовуєте термінал (я використовую ubuntu), тоді просто використовуйте комбінацію CTRL+ lз клавіатури, щоб очистити скрипт python, навіть він очищає сценарій терміналу ...


1
Просто кажучи, але питання полягає в тому, як очистити екран ІНДИЛЮВАННЯ, З ПІТНЬОГО СКРИПТУ.
Електра

ОП вказав IDLE.
wbadry

-5

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

Введіть у командному рядку наступне:

shell.clear()

Якщо ви використовуєте IPythonдля Windows, це

cls()

4
Чи потрібен якийсь імпорт для цього, тому що він не працював для мене. Якщо йдеться про імпорт, вам слід ввести його у відповідь. Крім того, питання стосується очищення підказки в режимі IDLE .
Електра
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.