Alguma maneira de limpar a janela IDLE do python?

154

Eu sei que há um tópico semelhante sobre o console python, mas não sei se eles são iguais. Eu tentei o sistema ("claro") e não funcionou aqui.

Como limpo a janela IDLE do python?

elísio devorado
fonte
10
não é uma duplicata, OP é perguntando sobre como shell IDLE claro, não consolá
Moha o camelo almighty
1
A razão pela qual isso não funciona é porque o Python inicia uma nova sessão de shell e executa o comando clearlá. Também explica por cdque não funciona system.os.
Jkd
14
Mantenha pressionada ctrl + jpor um tempo e, em seguida, pressione enter, Essa será a melhor maneira
ytpillai
1
@ytpillai, Ah, mas isso me dá um aviso na parte inferior. Uma solução, sem dúvida, mas ainda causa alguma comodidade.
John Red

Respostas:

97

Os "cls" e "clear" são comandos que limparão um terminal (por exemplo, um prompt do DOS ou janela do terminal). Na captura de tela, você está usando o shell no IDLE, que não será afetado por essas coisas. Infelizmente, acho que não há uma maneira de limpar a tela no IDLE. O melhor que você pode fazer é rolar a tela muitas linhas, por exemplo:

print "\n" * 100

Embora você possa colocar isso em uma função:

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

E então chame quando necessário cls()

Brian
fonte
13
Ele limpa a tela, mas você ainda recebe o prompt ">>>" na última linha, na parte superior, o que acho que torna menos ineficiente ... ainda +1 para a tela limpa
Invictus
10
Python 3.4.2 - Eu tive que colocar "\ n" e * 100 entre parênteses, então:print ("\n" * 100)
cody.codes
4
Isso não limpará a tela, ainda posso voltar para cima!
esoterik
2
ctrl + jtambém funciona. Pode ser útil, inclusive isso. stackoverflow.com/a/11993793/4871483
ytpillai
1
Observe que essa é a tag python. Não específico da versão. Para todos os usuários do Python 3.x éprint('\n'*100)
Luke
83

os.system('clear')trabalha no linux. Se você estiver executando o Windows, tente os.system('CLS').

Você precisa importar o primeiro assim:

import os
Nadia Alramli
fonte
13
O os.system ('CLS') funciona no Windows. (Python 2.6). A tela resultante é limpa, mostrando apenas um "0", que suponho ser o valor de retorno do CLS, na parte superior. A próxima linha tem o prompt >>>.
Mjv 16/09/09
35
isso faz uma chamada de sistema operacional para cls em um comando externo imediato e não interage w / Inativo
bunglestink
15
ocioso não é uma janela do console. O clear e o cls operam nas janelas do console / terminal.
Bryan Oakley
16
A questão é 'Limpar tela IDLE' os métodos acima certamente não funcionam em meu computador
Elektra
21
Por que isso é votado? Isto irá abrir um novo prompt de comando, desmarcá-la e fechá-la
ytpillai
39

A maioria das respostas, aqui, limpa a tela do prompt do DOS, com comandos de limpeza, o que não é a questão. Outras respostas aqui foram a impressão de linhas em branco para mostrar um efeito de limpeza da tela.

A resposta mais simples desta pergunta é

Não é possível limpar o shell IDLE do python sem alguma integração do módulo externo. Se você realmente deseja obter um shell novo puro em branco, feche o shell anterior e execute-o novamente

Abdul Rehman
fonte
3
Esta é uma resposta boa, direta e prática a esta pergunta; feche o modo inativo, deixe o arquivo aberto, execute-o novamente e o modo inativo agora tem uma nova tela.
23418 Mike_K
@ Mike_K, pode ser útil, mas nunca. No momento, tenho uma tela dividida (um livro <|> ocioso). Quando reexecute o Idle, a nova tela aparecerá na posição / dimensões padrão. Então, vai ficar muito chato.
Sdlins 31/03
38

ctrl+ Llimpa a tela no Ubuntu Linux.

shxfee
fonte
Também no Red Hat / Fedora / CentOS
DtechNet
1
No Windows também, se você usar o IDLEx. Felicidades! Tão feliz por finalmente ter conseguido uma solução simples!
John Red
Não está funcionando no Ubuntu 18.04. O menos pior aqui é usar CTRL+ Jvárias vezes.
Sdlins 31/03/19
@slinstj que fechou por completo em janelas
Mubarek
Adicionado ao meu hack de hoje! Também funciona como um encanto no MacOS!
Xtornasol512
21

Uma extensão para limpar o shell pode ser encontrada no problema6143 como uma "solicitação de recurso". Esta extensão está incluída no IdleX .

Roger
fonte
1
Esta é uma extensão brilhante para o Python Idle. Muito obrigado!
Indrajit 28/03
19
>>> import os

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

Isso faz é perfeitamente. Nenhum '0' impresso também.

Derk Smith
fonte
Bom, simples, faz o que diz. Ou import osapenas digite, os.system("clear")embora a função seja útil se você precisar limpar a tela com frequência.
precisa
1
os.system ("claro") funcionou. Isso funciona para mim, mas eu tenho que digitar "cls ()"
j0h
Quando eu tentei isso, a linha de comando retornou <cls função em 0x024D25D0> e o console não fez clara
ericgrosse
Melhor resposta até agora
hello123
@ericgrosse você precisa digitar cls (), não CLS
Banoona
9

Não parece haver uma maneira de limpar o buffer 'shell' do IDLE.

Mark Ribau
fonte
1
bugs.python.org/issue6143 possui uma extensão para limpar o shell e está incluído no IdleX.
Roger
7

A maneira de executar comandos no Python 2.4+ é usar o módulo de subprocesso . Você pode usá-lo da mesma maneira que você usa os.system.

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

Se você estiver executando isso no console python, precisará fazer algo para ocultar o valor de retorno (para um os.systemou para subprocess.call), como atribuí-lo a uma variável:

cls = subprocess.call("cls", shell=True)
Rudd Zwolinski
fonte
Traceback (última chamada mais recente): Arquivo "<pyshell # 1>", linha 1, em <module> subprocess.call ("cls") Arquivo "C: \ Python26 \ lib \ subprocess.py", linha 444, em retorno da chamada Popen (* popenargs, ** kwargs) .wait () Arquivo "C: \ Python26 \ lib \ subprocess.py", linha 595, em init errread, errwrite) Arquivo "C: \ Python26 \ lib \ subprocess.py ", linha 804, em STARTUPINFO _execute_child) WindowsError: [Erro 2] Sistema pode não encontrar o arquivo especificado
Elysium devorado
1
Hmm .. É o que eu ganho por não usar o Windows e, portanto, não poder testá-lo. Tente subprocess.call ("cls", shell = True)
Rudd Zwolinski
5

Eu gosto de usar:

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

clear()
lfsando
fonte
Looks como essa resposta tenha já sido fornecido
OneCricketeer
4

Arquivo -> Nova Janela

Na nova janela **

Executar -> Shell Python

O problema com esse método é que ele limpará todas as coisas que você definiu, como variáveis.

Como alternativa, você deve apenas usar o prompt de comando.

abrir prompt de comando

digite "cd c: \ python27"

digite "python example.py", você precisará editá-lo usando IDLE quando não estiver no modo interativo. Se você estiver no shell python, arquivo -> nova janela.

Observe que o exemplo.py precisa estar no mesmo diretório que C: \ python27 ou em qualquer diretório em que o python esteja instalado.

A partir daqui, basta pressionar a tecla de seta PARA CIMA no teclado. Você acabou de editar example.py, use CTRL + S e, em seguida, volte ao prompt de comando, pressione a tecla de seta PARA CIMA e pressione Enter.

Se o prompt de comando ficar muito cheio, digite "clr"

O comando "clr" funciona apenas com o prompt de comando, não funciona com o IDLE.

covarde anônimo
fonte
3
Só estou dizendo, mas acredito que a pergunta está perguntando: 'Como você limpa a tela EM INÚCIO DO DENTRO DO SCRIPT DE PYTHON.
Elektra
Iniciar um novo arquivo e executar o shell Python nele parecia ser a única opção disponível para mim; nada mais funcionava. Obrigado!
Sergey Zakharov
4

Parece que não há maneira direta de limpar o console IDLE.

Uma maneira de fazer isso é usar exit () como o último comando no meu script python (.py). Quando executo o script, ele sempre abre um novo console e avisa antes de sair.

De cabeça para baixo: o console é iniciado sempre que o script é executado. Desvantagem: o console é iniciado sempre que o script é executado.

Sandeep Gaadhe
fonte
2

Você pode fazer uma script AutoHotKey .

Para definir ctrl-r como uma tecla de atalho para limpar o shell:

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

Basta instalar o AutoHotKey, colocar o item acima em um arquivo chamado idle_clear.ahk, executar o arquivo e sua tecla de atalho estará ativa.

Desalinhado
fonte
2

Nenhuma dessas soluções funcionou para mim no Windows 7 e no IDLE. Encerre usando o PowerShell, executando o Python nele e saindo para chamar "cls" no PowerShell para limpar a janela.

CONTRAS: Supõe que o Python já esteja na variável PATH. Além disso, isso limpa as variáveis ​​do Python (apesar de reiniciar o shell).

PRÓS: Mantém qualquer personalização de janela que você fez (cor, tamanho da fonte).

Draghon
fonte
2

Parece que é impossível fazê-lo sem nenhuma biblioteca externa.

Uma maneira alternativa, se você estiver usando o Windows e não quiser abrir e fechar o shell toda vez que quiser limpá-lo, use o prompt de comando do Windows.

  • Digite pythone pressione Enter para transformar o prompt de comando do Windows em python ocioso (verifique se o python está instalado).

  • Digite quit()e pressione Enter para retornar ao prompt de comando do Windows.

  • Digite clse pressione Enter para limpar o prompt de comando / shell do Windows.

Ari
fonte
2

Eu recomendo que você use o Thonny IDE para Python. Seu shell possui a opção "Clear Shell" e você também pode rastrear variáveis ​​criadas em uma lista separada. Sua depuração é muito boa, mesmo comparando com os IDEs modernos. Você também pode escrever código no arquivo python junto com o acesso ao shell no mesmo local.

E é leve!

Zaheer
fonte
2

" command + L " para MAC OS X.

" control + L " para Ubuntu

Limpa a última linha da sessão interativa

Darshan NS
fonte
Eu não sabia sobre esse recurso, obrigado Sempre escreva o que seu comando faz.
Priyank Pathak
1

Como mark.ribau disse, parece que não há como limpar o widget de texto em modo inativo. Deve-se editar o EditorWindow.pymódulo e adicionar um método e um item de menu na classe EditorWindow que faça algo como:

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

e talvez um pouco mais de gerenciamento de tags dos quais eu desconheço.

tzot
fonte
1

A melhor maneira de fazer isso no Windows é usar o prompt de comando 'cmd' e acessar o diretório python. O prompt de comando pode ser encontrado no menu Iniciar> Executar> 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
Al-Ani
fonte
2
Só estou dizendo, mas acredito que a pergunta está sendo feita: 'Como você limpa a tela IN IDLE'. (Ênfase em IN IDLE)
Élektra 22/11
1

usa isto

for num in range(1,100):
    print("\n")
Tauseef
fonte
Funciona, mas você acaba com uma distância de rolagem incrivelmente longa se quiser ver algo mais cedo.
Elektra
Tente reduzir o intervalo (1,10):
Tauseef 24/11
@ Xenon Mas se a ideia é limpar a janela, o usuário não poderá ver algo mais cedo.
Sam
0

Sua captura de tela mostra que você está usando o IDLE. clsEu clearnão vou trabalhar para você.

orip
fonte
5
Essa não é uma boa resposta; O OP não pediu "o que não vai me ajudar a limpar a janela IDLE do Python".
DeFazer 19/07
-1
from subprocess import call as c

def cls():

    c("cls",shell=True)

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

cls()

Sempre que você desejar limpar o console, chame a função cls, mas observe que essa função limpará a tela no Windows somente se você estiver executando o Python Script usando o prompt do cmd, não limpará o buffer se estiver executando pelo IDLE.

Akash Rana
fonte
2
Só estou dizendo, mas acredito que a pergunta está perguntando: 'Como você limpa a tela IN IN ociosa por dentro do script Python.
Elektra
-1

Eu entendi com:

import console 
console.clear()

se você quiser fazê-lo em seu script ou se estiver no console, basta tocar em limpar () e pressionar enter. Isso funciona no Pyto no iPhone. Pode depender do console, no entanto.

Bryan Aneux
fonte
Não há consolemódulo no IDLE.
AKX 30/06
Ele diz que não há módulo de console.
Musa
-2

Isso funciona para mim no Windows:

print chr(12)

Joel Vroom
fonte
chr não é reconhecido no terminal de IDLE
wbadry
Obrigado Joel. Trabalhou para mim também.
Funciona para mim também no Windows, Spyder IDE e parece ser o código mais simples para alcançar o resultado desejado. {chr (12) is formfeed}
Ian
-4

Se você estiver usando o terminal (eu estou usando o ubuntu), basta usar a combinação de CTRL+ lfrom keyboard para limpar o script python, mesmo que ele apague o script do terminal ...

Arbaaz
fonte
1
Só estou dizendo, mas a pergunta é sobre limpar a tela IN INLEY, FROM A PYTHON SCRIPT.
Élektra
O OP especificou IDLE.
wbadry
-5

Não há necessidade de escrever sua própria função para fazer isso! O Python possui uma função clara integrada.

Digite o seguinte no prompt de comando:

shell.clear()

Se estiver usando o IPythonWindows, é

cls()
Michael Vogel
fonte
4
Existe algum tipo de importação necessária para fazer isso, porque não funcionou para mim. Se houver uma importação envolvida, você deve colocá-la em sua resposta. Além disso, a pergunta é sobre como limpar o prompt IN IDLE .
Élektra