2009-09-16 12 views
115

Я знаю, что есть аналогичная тема о консоли python, но я не знаю, совпадают ли они. Я попробовал систему («clear»), и она здесь не работала.Любой способ очистить окно IDLE python?

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

+7

это не дубликат, OP спрашивает о том, как очистить IDLE оболочки, а не утешать –

+0

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

+9

Удерживайте 'ctrl + j' некоторое время, а затем нажмите enter. Это будет лучший способ. – ytpillai

ответ

57

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

Вы должны импортировать ОС первый, как это:

import os 
+1

Кажется, не работает. Может быть, мне нужно что-то импортировать? –

+0

Вам необходимо импортировать os –

+10

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

7

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

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

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

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

Traceback (самый последний вызов последнего): Файл «», строка 1, в subprocess.call («ЦБС») Файл «C: \ Python26 \ lib \ subprocess.py», строка 444, при вызове return Popen (* popenargs, ** kwargs) .wait() Файл «C: \ Python26 \ lib \ subprocess.py», линия 595, в __init__ errread, errwrite) файл "C: \ Python26 \ Lib \ subprocess.py", строка 804, в _execute_child STARTUPINFO) WindowsError: [Error 2] система не может найти указанный файл –

+1

Хмм .. Это то, что я получаю от того, что не использую Windows и, таким образом, не могу ее протестировать. Попробуйте subprocess.call («cls», shell = True) –

81

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

print "\n" * 100 

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

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

И затем вызвать его при необходимости в cls()

+11

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

+0

Это достойный способ обхода - единственный, который я нашел, работающий – OutputLogic

+9

Python 3.4.2 - Мне пришлось заключать «\ n» и * 100 в круглые скобки, поэтому: 'print (" \ n "* 100) ' –

0

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

+1

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

7

Невозможно очистить буфер IDLE «shell».

+1

http://bugs.python.org/issue6143 имеет расширение для очистки оболочки и включено в IdleX. – Roger

0

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

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

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

2

File -> New Window

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

Run -> Python Shell

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

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

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

типа "CD C: \ python27"

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

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

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

Если командная строка становится слишком тесно, просто введите «CLR»

Команда «CLR» работает только с командной строкой, он не будет работать с IDLE.

+3

Just Saying, но я считаю, что вопрос задает вопрос: «Как вы очищаете экран В ПРОХОДОМ ИЗ ВНУТРИ ПИТОННОГО СКРИПТА. – Xenon

1

Если вы хотите очистить буфер оболочки, перейдите в shell> restart shell в IDLE. Ваш вопрос немного расплывчатый. Вы хотите очистить буфер оболочки или пытаетесь вызвать команду ОС?

+0

Нужно очистить буфер оболочки, но перезапуск не подходит. Он сбрасывает пространство имен и вставляет строку, в которой говорится, что она перезапустилась, но на экране по-прежнему отображаются результаты, полученные до перезапуска. – Chev

+2

Just Saying, но я верю, что в вопросе спрашивается: «Как вы очищаете экран В СВОБОДЕ ОТ ВНУТРИ ПИТОННОГО СКРИПТА. – Xenon

16

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

+0

Это блестящее расширение для Python Idle. Спасибо огромное! – Indrajit

7
>>> import os 

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

Это делает. Нет «0».

+0

Ницца, просто, делает то, что он говорит. Или после 'import os' просто введите' os.system («clear») ', хотя функция удобна, если вам часто нужно очищать экран. –

+1

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

+0

Когда я это пробовал, в командной строке возвращалась функция , а консоль не очищалась – ericgrosse

-2

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

Введите в командной строке:

shell.clear() 
+2

Есть ли какой-то импорт для этого требуется, потому что это не сработало для меня. Если есть импорт, вы должны поместить его в свой ответ. Кроме того, возникает вопрос об изменении приглашения _IN IDLE_. – Xenon

1

Лучший способ сделать это на окнах с помощью командной строки «Cmd» и каталог питона доступа к командной строке можно найти в меню Пуск> запустить> 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

Just Saying, но я считаю, что вопрос задает вопрос «Как очистить экран IN IDLE». (Акцент на 'IN IDLE') – Xenon

-2

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

+1

Просто говорю, но вопрос в том, чтобы очистить экран В ИДЕЛЕ, ОТ ПИТОННОГО СКРИПТА. – Xenon

2

Вы можете создать сценарий AutoHotKey.

Чтобы установить Ctrl-R на горячую клавишу, чтобы очистить скорлупу:

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

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

-1

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

print chr(12)

15

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

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

It is not possible to clear python IDLE shell without some external module integration. If you really want to get a blank pure fresh shell just close the previous shell and run it again

-1
from subprocess import call as c 

def cls(): 

    c("cls",shell=True) 

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

cls() 

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

+1

Just Saying, но я верю, что в вопросе спрашивается: «Как вы очищаете экран В СВОБОДЕ ОТ ВНУТРЕННЕГО ПИСЬМА. – Xenon

1

использование этого

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

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

+0

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

+0

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

26

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

+0

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

+2

и на Mac OS X – foobar5512

+1

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

-1

Я хотел бы использовать:

import os 
clear = lambda : os.system('cls') # or clear for Linux 

clear() 
+0

Похоже, что этот ответ был [уже предоставлен] (http://stackoverflow.com/a/1432505/2308683) –

1

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

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

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

0

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

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

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

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

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