Apenas uma pergunta rápida:
como você limpa a tela no shell? Eu vi maneiras como:
import os
os.system('cls')
Isso apenas abre o cmd do windows, limpa a tela e fecha, mas eu quero que a janela do shell seja limpa
(PS: Não sei se isso ajuda, mas estou usando a versão 3.3.2 do Python)
Obrigado :)
Respostas:
Para macOS / OS X, você pode usar o módulo de subprocesso e chamar 'cls' do shell:
import subprocess as sp sp.call('cls', shell=True)
Para evitar que '0' apareça no topo da janela, substitua a 2ª linha por:
tmp = sp.call('cls', shell=True)
Para Linux, você deve substituir o
cls
comando porclear
tmp = sp.call('clear', shell=True)
fonte
import subprocess as sp sp.call('clear',shell=True)
que funciona, exceto que há um0
na parte superior da janela do terminal.ctrl+L
sp.call('cls', shell=True);
E o atalho CTRL+ L?
Funciona com todos os shells, por exemplo, Python, Bash, MySQL, MATLAB, etc.
fonte
import os os.system('cls') # For Windows os.system('clear') # For Linux/OS X
fonte
os.system('clear')
para terminais Mac OS X (confirmado para funcionar com o shell padrãobash
, e também paracsh
).O tipo de coisa que você está procurando pode ser encontrado no módulo curses.
ie
import curses # Get the module stdscr = curses.initscr() # initialise it stdscr.clear() # Clear the screen
Nota importante
O importante a lembrar é que antes de qualquer saída, você precisa redefinir o terminal para o modo normal, isso pode ser feito com as seguintes linhas:
curses.nocbreak() stdscr.keypad(0) curses.echo() curses.endwin()
Do contrário, você terá todo tipo de comportamento estranho. Para garantir que isso sempre seja feito, eu sugeriria usar o módulo atexit, algo como:
import atexit @atexit.register def goodbye(): """ Reset terminal from curses mode on exit """ curses.nocbreak() if stdscr: stdscr.keypad(0) curses.echo() curses.endwin()
Provavelmente servirá bem.
fonte
stdscr = curses.initscr()
funciona para limpar a tela estdscr.clear()
não faz nada. Usando Python3.4, ostdscr = curses.initscr()
limpa a tela, mas tira a capacidade do terminal de processar novas linhas. Quando pressiono enter repetidamente, ocorre o seguinte:>>> >>> >>> >>>
e assim por diante. Ainda consigo digitar comandos, mas eles não aparecem. Além disso, esse comportamento persiste mesmo quando eu uso oexit()
Python. EVITE O USO!curses
módulo ter problemas de compatibilidade (Windows x Mac x Linux)? Posso confirmar que esse problema ocorre em dois terminais Mac diferentes, pelo menos. O comportamento persiste no BASH, mas não no CSH. Hmm .... Você acha que eu deveria entrar em contato com o desenvolvedor do curses, o desenvolvedor do shell ou apenas perguntar à comunidade SO? Obrigado novamente!Aqui estão algumas opções que você pode usar no Windows
Primeira opção:
import os cls = lambda: os.system('cls') >>> cls()
Segunda opçao:
cls = lambda: print('\n' * 100) >>> cls()
Terceira opção se você estiver na janela Python REPL:
fonte
Além de ser uma ótima biblioteca CLI versátil,
click
também oferece umaclear()
função independente de plataforma :import click click.clear()
fonte
Esta função funciona em qualquer sistema operacional (Unix, Linux, macOS e Windows)
Python 2 e Python 3
import platform # For getting the operating system name import subprocess # For executing a shell command def clear_screen(): """ Clears the terminal screen. """ # Clear command as function of OS command = "cls" if platform.system().lower()=="windows" else "clear" # Action return subprocess.call(command) == 0
No Windows, o comando é
cls
; em sistemas do tipo Unix, o comando éclear
.platform.system()
retorna o nome da plataforma. Ex.'Darwin'
para macOS.subprocess.call()
executa uma chamada de sistema. Ex.subprocess.call(['ls','-l'])
fonte
Uma maneira mais fácil de limpar uma tela em python é usar Ctrl+, Lembora funcione para o shell e também para outros programas.
fonte
Se você estiver usando um terminal linux para acessar python, então cntrl + l é a melhor solução para limpar a tela
fonte
Estou usando uma classe que usa apenas um dos métodos acima nos bastidores ... percebi que funciona no Windows e no Linux ... mas gosto de usá-la porque é mais fácil digitar clear () em vez de system ('clear' ) ou os.system ('limpar')
pip3 install clear-screen from clear_screen import clear
e então quando você quiser limpar a casca:
clear()
fonte
usando windows 10 e pyhton3.5 eu testei muitos códigos e nada me ajudou mais do que isso:
Primeiro defina uma função simples, esta função imprimirá 50 novas linhas; (o número 50 dependerá de quantas linhas você pode ver na tela, então você pode alterar este número)
def cls(): print ("\n" * 50)
em seguida, basta chamá-lo quantas vezes quiser ou precisar
cls()
fonte
Command+K
funciona bem no OSX para limpar a tela.Shift+Command+K
para limpar apenas o buffer de rolagem.fonte
import curses stdscr = curses.initscr() stdscr.clear()
fonte
O subprocesso permite que você chame "cls" para Shell.
import subprocess cls = subprocess.call('cls',shell=True)
Isso é o mais simples que posso fazer. Espero que funcione para você!
fonte
você pode usar o Windows ou Linux OS
import os os.system('cls') os.system('clear')
você pode usar o módulo de subprocesso
import subprocess as sp x=sp.call('cls',shell=True)
fonte
os.system('cls')
funciona bem quando eu os abro. Ele abre no estilo cmd.fonte
Em vez de importar todas as maldições ou gastar apenas para obter um caractere de controle, você pode simplesmente usar (no Linux / macOS):
print(chr(27) + "[2J")
(Fonte: Limpar terminal em Python )
fonte
Veja como criar seu próprio comando
cls
ouclear
que funcione sem chamar explicitamente nenhuma função!Tiraremos vantagem do fato de que o console do Python chama
repr()
para exibir objetos na tela. Isso é especialmente útil se você tiver seu próprio shell Python personalizado (com a-i
opção, por exemplo) e tiver um script de pré-carregamento para ele. Isto é o que você precisa:import os class ScreenCleaner: def __repr__(self): os.system('cls') # This actually clears the screen return '' # Because that's what repr() likes cls = ScreenCleaner()
Use em
clear
vez decls
se você estiver no Linux (tanto noos
comando quanto no nome da variável)!Agora, se você apenas escrever
cls
ouclear
no console - ele irá limpar! Nem mesmocls()
ouclear()
- apenas a variável bruta. Isso ocorre porque o python chamarárepr(cls)
para imprimi-lo, o que por sua vez acionará nossa__repr__
função.Vamos testar:
>>> df;sag Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'df' is not defined >>> sglknas Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'sglknas' is not defined >>> lksnldn Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'lksnldn' is not defined >>> cls
E a tela está limpa!
Para esclarecer - o código acima precisa ser importado no console como este
from somefile import cls
Ou pré-carregue diretamente com algo como:
python -i my_pre_loaded_classes.py
fonte
Essa é a melhor maneira:
>>>import os >>>def cls(): os.system('cls') >>>cls()
fonte
Para o Python IDLE 3.8.1, você pode reiniciar o Shell
CTRL + F6
No menu Clique no menu Shell. Em seguida, clique na opção Reiniciar Shell.
fonte