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?


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()


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

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


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.


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 .


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.


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


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)

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


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.


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.


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.


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).


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.


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!


2

" command + L " para MAC OS X.

" control + L " para Ubuntu

Limpa a última linha da sessão interativa


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.


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

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")

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ê.


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.


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.


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)


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 ...


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()

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.