cls
, mas como acioná-lo a partir do Python de modo conveniente?Pesquisando na Web, achei uma conversa no StackOverflow (que Allah o proteja sempre!). Lá tem várias respostas mas a mais legal é este pequeno script:
class cls(object): def __repr__(self): import os os.system('cls' if os.name == 'nt' else 'clear') return '' cls = cls()
Como usar
Depois de salvar este código em um scriptcls.py
, há três maneiras de usá-lo. A primeira e mais simples é invocar o Python assim:
C:\Users\Luciano> python -i cls.pyDesta forma o Python executa o script, definindo a classe
cls
e criando uma variável global com o mesmo nome. Para limpar o console, basta digitar no prompt do Python:
>>> clsOs únicos inconvenientes da abordagem acima são ter que lembrar de invocar o Python com a opção
-i cls.py
e um pequeno detalhe: o cabeçalho que indica a versão do Python é omitido com esta opção, e isso pode confundir.
Instalar como script de inicialização
Se quiser usar o pseudo-comandocls
toda vez que rodar o Python, você pode usar esta dica do tutorial do Python: crie uma variável de ambiente no Windows chamada PYTHONSTARTUP
e coloque nela o caminho completo até o arquivo cls.py
. No meu caso, salvei o arquivo no diretório onde o Python para Windows já traz alguns scripts, e o caminho ficou assim:
C:\Users\Luciano> echo %PYTHONSTARTUP% C:\Python27\Scripts\cls.pyFeito isso, o script
cls.py
será executado toda vez que você rodar o Python em modo interativo (mas não quando executar algum script).
A terceira forma de instalar o comando
cls
seria usando um módulo de customização, como explicado no Tutorial, mas não achei prática esta alternativa no Windows porque o caminho onde eu teria que criar o módulo não existe e, mesmo se criado, é de difícil acesso no Windows 7 (fica num lugar bizarro que tem AppData\Roaming
no caminho).
Como funciona
A graça do scriptcls.py
está em usar o método __repr__
para executar uma chamada ao SO para limpar a tela. O __repr__
serve para produzir uma string que representa o objeto de forma precisa, e é o que o Python usa para mostrar o valor de qualquer expressão no console interativo. Ao criar uma instância da classe
cls
e atribuir esta instância à variável global com o mesmo nome, toda vez que digitamos cls
no prompt, para exibir o valor desta variável o Python executa repr(cls)
e isso invoca o nosso método cls.__repr__()
. Uma solução simples e inteligente, usando um pouco de conhecimento sobre o modelo de objetos da linguagem.
Ola, sr Luciano, não consigo fazer isso =[
ResponderExcluirOlá, Jucimara, você seguiu atentamente as instruções? Qual foi o passo que não funcionou para você? Exatamente qual foi o problema encontrado?
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirTraceback (most recent call last):
ResponderExcluirFile "", line 1, in
execfile ("C:/Users/Www/Desktop/cls.py")
File "C:/Users/Www/Desktop/cls.py", line 1
class cls(object):
^
Eu não consegui...
Não funcionou! Apareceu a seguinte mensagem: "SyntaxError: invalid syntax
ResponderExcluirCLS
Traceback (most recent call last):
File "", line 1, in
CLS
NameError: name 'CLS' is not defined"
por que é tão difícil isso???!!!
ResponderExcluir