Como limpar o console no Python? (terminal)

Neste artigo você vai aprender como limpar o console no Python, chamado também de terminal, de uma forma simples e eficaz.

Para limpar o console no Python, importe o módulo os e execute: os.system(‘cls’ if os.name == ‘nt’ else ‘clear’). O os.name retorna ‘nt’ no Windows e ‘posix’ em sistemas tipo Unix (Linux e macOS), então a mesma linha envia cls no Windows e clear nos demais sistemas. O os.system() executa esse comando em um subshell e devolve o status de saída do processo, sendo 0 o retorno de sucesso. Sem chamar comando do sistema, dá para usar a sequência de escape ANSI print(‘\033[H\033[2J’, end=”), em que [2J limpa a tela inteira e [H move o cursor para o canto superior esquerdo. Dentro do Jupyter ou do Colab, use clear_output(wait=True), do IPython.display.

como limpar o terminal com python capa

Fala programador(a), beleza? Bora aprender mais sobre Python!

Limpar o terminal ou console apenas com Python é uma tarefa bem simples

Vamos apenas precisar importar a lib os, e utilizar o método system nela

Isso para ter acesso a alguns comandos

Veja aqui o exemplo prático para limpar o console:

import os
os.system('cls' if os.name == 'nt' else 'clear')

Com a instrução os.system acima, você já consegue limpar o terminal 🙂

E perceba que estamos utilizando uma abordagem que vai funcionar tanto em Windows como no Linux

Pois o código verifica se existe o cls, comando que limpa o terminal no Windows

Caso não ele usa o clear, comando que limpa o console do Linux

Então o seu código funcionará em ambos os sistemas operacionais

Formação Claude Code
Formação Recomendada

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 120 aulas
  • 4 projetos
  • 9h 45min

Por atalho

Caso você não esteja procurando uma alternativa via programação, você mesmo pode escrever cls ou clear no terminal

Ou também utilizar a hotkey Ctrl + L

Estas duas maneiras, não são via programação, mas funcionam da mesma forma que o código

Conclusão

Neste artigo vimos uma forma de limpar o console no Python, bem simples e eficaz

Verificando qual sistema operacional está sendo utilizado, para poder suportar qualquer computador

Por meio da lib os, conseguimos atingir nosso objetivo

Dando um cls ou clear, dependendo do OS do usuário

Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube

O que o os.system faz por baixo dos panos?

Antes de sair copiando a linha, entende o porquê dela

O os.system() pega um comando (uma string), executa ele em um subshell e devolve o status de saída do processo

Retorno 0 quer dizer que rodou de boa

Ou seja: quem limpa a tela não é o Python, é o comando do teu sistema operacional

E quem decide qual comando mandar é o os.name

O os.name identifica o módulo de sistema operacional que o Python carregou, e os nomes registrados atualmente são ‘posix’, ‘nt’ e ‘java’

No Windows ele retorna ‘nt’, em sistemas tipo Unix (Linux e macOS) retorna ‘posix’

Por isso o if escolhe cls quando o os.name é ‘nt’, e clear no restante 🙂

Onde cada comando funciona: cls, clear e Ctrl + L

No Prompt de Comando do Windows, o cls limpa a tela

No PowerShell, cls é apelido (alias) de Clear-Host, então tu digita cls e quem roda é o Clear-Host

Já o clear é o comando dos sistemas tipo Unix

E se liga nisso: ele não é mágica, o clear consulta a variável TERM e a base terminfo pra saber como limpar aquele terminal específico

Quando o terminal suporta, ele limpa também o buffer de rolagem (a capacidade E3), não só o que está visível

O Ctrl + L é atalho do readline: no bash ele está associado à função clear-screen

Dá pra limpar o console sem chamar comando do sistema?

Dá sim, com sequência de escape ANSI

Assim tu não abre subshell nenhum só pra limpar a tela:

print(‘\033[H\033[2J’, end=”)

E o que significam esses símbolos? O [2J limpa a tela inteira e o [H move o cursor pro canto superior esquerdo

Tome cuidado no Windows: o suporte a sequências ANSI existe desde o Windows 10 versão 1511, mas depende do flag de modo de console ENABLE_VIRTUAL_TERMINAL_PROCESSING, que é habilitado por processo

Ou seja, ali não é garantia universal, depende de como aquele console foi configurado

E o subprocess? (o caminho recomendado hoje)

O módulo subprocess foi feito pra substituir módulos e funções mais antigos, e o os.system é um deles

A forma recomendada de invocar subprocessos é a função run(), que chegou no Python 3.5

Em sistemas tipo Unix fica assim:

import subprocess

No Windows a conversa muda, porque o cls é comando do próprio Prompt de Comando (e no PowerShell, apelido de Clear-Host)

Por isso, pra código cross platform, o os.system(‘cls’ if os.name == ‘nt’ else ‘clear’) segue sendo o atalho mais curto

E a sequência ANSI é a alternativa quando tu não quer subshell na jogada

Tome cuidado: nunca monte esse comando com entrada do usuário

Passar entrada de usuário direto pro os.system() abre brecha de injeção de comando

A recomendação de segurança é usar subprocess com lista de argumentos e shell=False

Pra limpar a tela isso quase nunca morde, porque o comando é fixo e escrito por você

Mas no dia que tu montar comando com string que veio de fora, lembra disso!

E no Jupyter Notebook ou Google Colab?

Se tu está dentro de um notebook, quem limpa a saída é o próprio IPython:

from IPython.display import clear_output clear_output(wait=True)

O clear_output() limpa a saída da célula que está recebendo output, e ele aceita o parâmetro wait

Muito útil naquele loop que fica imprimindo progresso e enche a célula de lixo 😀

Inserir o bloco de FAQ com as perguntas e respostas do campo geo.faq, cada pergunta como H3 e a resposta logo abaixo em linhas curtas

Quer aprender Python do básico ao avançado, com projeto na prática? Dá uma olhada no nosso curso completo de Python aqui da Hora de Codar

Python é assunto de casa aqui na Hora de Codar: eu dou o curso completo de Python, do básico ao avançado, e limpar console é uma das primeiras dúvidas que aparece quando o aluno começa a montar menuzinho no terminal

O que dá pra afirmar com segurança, e a documentação sustenta, é que quem limpa a tela não é o Python: é o comando do sistema que o os.system manda pro subshell

O que eu ainda não tenho teste registrado pra publicar aqui é o comportamento dessa mesma linha dentro do console de cada IDE (janela Run do PyCharm, console de debug do VS Code, IDLE)

Pra fechar isso direito faltaria rodar o mesmo script nos três, imprimindo o retorno do os.system, e anotar em qual deles a tela realmente limpa

Enquanto esse teste não estiver publicado aqui, roda no terminal do teu sistema, que é onde o comportamento é o documentado

Perguntas frequentes

Como limpar o console no Python em Windows e Linux com o mesmo código?

Com uma linha só: os.system(‘cls’ if os.name == ‘nt’ else ‘clear’)

O os.name identifica o sistema, retornando ‘nt’ no Windows e ‘posix’ em Linux e macOS

Aí o Python manda cls num caso e clear no outro, sem tu precisar de dois códigos

O que significa os.name == ‘nt’ no Python?

O os.name identifica o módulo de sistema operacional que o Python carregou

Os nomes registrados atualmente são ‘posix’, ‘nt’ e ‘java’

Então ‘nt’ é o Windows, e ‘posix’ são os sistemas tipo Unix, como Linux e macOS

Qual a diferença entre cls e clear?

O cls limpa a tela do Prompt de Comando do Windows, e no PowerShell ele é apelido (alias) de Clear-Host

O clear é o comando dos sistemas tipo Unix

O clear consulta a variável TERM e a base terminfo, e quando o terminal suporta ele limpa também o buffer de rolagem (capacidade E3)

Dá para limpar a tela no Python sem usar os.system?

Dá, usando sequência de escape ANSI: print(‘\033[H\033[2J’, end=”)

O [2J limpa a tela e o [H manda o cursor pro canto superior esquerdo

No Windows, o suporte a ANSI existe desde a versão 1511 do Windows 10, mas depende do flag de console ENABLE_VIRTUAL_TERMINAL_PROCESSING, que é habilitado por processo

O os.system ainda é a melhor opção?

O módulo subprocess foi feito pra substituir funções mais antigas, entre elas o os.system, e a forma recomendada de invocar subprocessos é a função run(), que chegou no Python 3.5

Pra um comando fixo como limpar tela, o os.system resolve e é mais curto

Mas se o comando for montado com qualquer coisa vinda de fora, vai de subprocess

Usar os.system para limpar o terminal é seguro?

Com comando fixo escrito por você, é o caso mais simples possível

O problema aparece quando entra input de usuário: aí o os.system() abre brecha de injeção de comando

A recomendação de segurança nesse cenário é usar subprocess com lista de argumentos e shell=False

Como limpar a saída no Jupyter Notebook?

Usando o clear_output() do IPython.display:

from IPython.display import clear_output clear_output(wait=True)

Ele limpa a saída da célula que está recebendo output e aceita o parâmetro wait

O atalho Ctrl + L limpa o terminal?

No bash sim: o Ctrl + L é um atalho do readline, associado à função clear-screen

É o mesmo efeito de digitar clear, só que sem escrever nada

Em outros shells o atalho pode ser diferente, então vale conferir na configuração do teu

Esse código funciona nas versões atuais do Python?

Funciona, o os e o subprocess são módulos da biblioteca padrão e seguem documentados

A versão estável mais recente do Python é a 3.14.7

Ou seja, nada de lib externa aqui, tu roda direto

Leia também

Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares