Como parar a execução de um script em Python
Neste artigo você vai aprender a como parar a execução de um script em Python, ou seja, fazer com que o programa não processe mais informações
Para parar a execução de um script em Python, importe o módulo sys e chame sys.exit(). Essa é a forma recomendada: ela levanta a exceção SystemExit, executa as rotinas de limpeza (blocos finally) e encerra o interpretador. Qualquer linha depois do sys.exit() não roda. Você pode passar um código de status: sys.exit(0) para término bem-sucedido e um valor diferente de zero para término anormal. Alternativas: raise SystemExit tem o mesmo efeito; exit() e quit() existem, mas são só para o modo interativo; os._exit() encerra na hora, sem limpeza; e Ctrl+C interrompe o script manualmente, pela exceção KeyboardInterrupt.

Fala programador(a), beleza? Bora aprender mais sobre a execução de programas e também sobre a linguagem Python!
Para cancelar a execução de um sistema em Python vamos precisar importar sys
O sys é um módulo que possui funções para lidar com o software em execução e sistema operacional
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Vamos utilizar a função exit, de sys
Esta função vai realizar a parada do programa, fazendo com que quaisquer linhas abaixo desta instrução não sejam mais interpretadas
Veja um exemplo prático de exit:
import sys
print("Aqui executa")
sys.exit()
print("Aqui não")
Veja que precisamos realizar a importação, se não não teremos acesso as funções de sys, então a primeira instrução é a importação do módulo
Depois criamos um print que é executado, apenas para exemplos
E incluimos o exit, que vai realizar a parada do script
O próximo print então não será executado, pois o software já não estará mais funcional naquele ponto
E assim realizamos o cancelamento de execução de um script em Python!
Conclusão
Neste artigo você aprendeu a como parar a execução de um script em Python
Utilizamos o módulo sys, e do módulo vamos executar a função exit
Esta função tem como premissa parar a execução de um software, que é exatamente o que precisamos!
Note que precisamos importar o módulo sys, se não exit não estará disponível
Confira nossos cursos gratuitos no Youtube, com vídeos todos os dias!
Se inscreva e ative o sininho para receber as notificações e aprender mais ainda sobre desenvolvimento web!
Veja também nosso catálogo de cursos na Udemy, todos com exercícios e projetos práticos, nas mais diversas tecnologias
O link acima contém um cupom de desconto para os cursos!
Outras formas de parar um script (e quando usar cada uma):
O sys.exit() é a forma recomendada, mas não é a única
Se você chegou aqui procurando alternativa, se liga nas opções e no PORQUÊ de cada uma
raise SystemExit: tem exatamente o mesmo efeito do sys.exit(), porque sys.exit() por baixo dos panos só levanta essa exceção mesmo
import sys raise SystemExit
exit() e quit(): funcionam no terminal, param o programa, mas são builtins que vêm do módulo site, pensados pro interpretador interativo
Ou seja, ótimos pra testar rapidinho no shell, não recomendados dentro de um script de verdade
os._exit(): esse é o pesado, encerra o processo na hora, sem rodar as rotinas de limpeza e sem esvaziar os buffers de saída
import os os._exit(0)
É de baixo nível, usado em casos raros, tipo dentro de um processo filho depois de um fork
Pro dia a dia, fica no sys.exit() e vive feliz =)
Como sair com um código de status:
O sys.exit() aceita um argumento opcional, que é o status de saída do programa
import sys sys.exit(0)
A regra é simples: 0 significa que terminou tudo certo, e qualquer valor diferente de zero indica término anormal (útil pra sinalizar erro pra quem chamou o script)
A faixa usual vai de 0 a 127
Se você passar None, é o mesmo que 0
E se passar outro objeto qualquer, ele é impresso no stderr e o código de saída vira 1
Parando a execução manualmente com Ctrl+C:
Nem sempre você quer parar o script por código, às vezes você só quer MATAR ele que travou ou entrou em loop infinito
Pra isso, no terminal onde o script tá rodando, aperta Ctrl+C
Isso levanta a exceção KeyboardInterrupt e interrompe a execução na hora
Um detalhe importante: o KeyboardInterrupt herda de BaseException, e não de Exception
Que diferença faz? Se você tem um try com except Exception por aí, ele NÃO vai capturar o Ctrl+C sem querer, e isso é de propósito, pra você sempre conseguir interromper o programa
Se liga numa pegadinha que pega muita gente: como o sys.exit() só levanta a exceção SystemExit, se você tiver um try capturando tudo em volta da chamada, dá pra engolir a saída sem querer e o script não para
O mesmo vale pro Ctrl+C: um except Exception genérico não segura o KeyboardInterrupt, porque ele herda de BaseException, e é bom que seja assim mesmo
Por isso, pra script de verdade, a gente fica no sys.exit() e deixa exit() e quit() só pra brincar no terminal interativo
Perguntas frequentes
Qual a diferença entre sys.exit(), exit() e quit()?
sys.exit() é a forma recomendada pra scripts: levanta a exceção SystemExit e encerra depois de rodar as rotinas de limpeza. Já exit() e quit() são builtins adicionados pelo módulo site, feitos pro interpretador interativo, então não são recomendados dentro de scripts de produção. Na prática os três param o programa, mas em código pra valer você usa sys.exit()
Como parar um script Python pelo teclado?
Aperte Ctrl+C no terminal onde o script está rodando. Isso levanta a exceção KeyboardInterrupt, que interrompe a execução. Como ela herda de BaseException, um try/except comum que captura Exception não pega ela sem querer
Como sair de um script Python com código de erro?
Passe um inteiro pro sys.exit(). sys.exit(0) sinaliza término bem-sucedido e qualquer valor diferente de zero indica término anormal. A faixa usual vai de 0 a 127. Se você passar None, equivale a 0, e se passar outro objeto, ele é impresso no stderr e o código de saída vira 1
sys.exit() serve pra sair de um loop?
Não é o ideal. Pra sair só de um loop use break, que interrompe o loop e o programa segue dali pra frente. O sys.exit() encerra o programa inteiro, não só o loop, então use ele quando quer realmente terminar o script
O que é os._exit() e quando usar?
os._exit() encerra o processo na hora, sem chamar as rotinas de limpeza nem esvaziar os buffers de saída. É de baixo nível, usado em casos raros, tipo num processo filho depois de um fork. Pro dia a dia, prefira sys.exit()
sys.exit() sempre encerra o programa na hora?
Nem sempre. Como ele só levanta a exceção SystemExit, os blocos finally rodam antes e a saída pode ser interceptada num nível externo. Ele só encerra de fato quando é chamado da thread principal e a exceção SystemExit não é capturada
Leia também
Formações
Formação SAAS com IA
Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!
- 291 aulas
- 18 projetos
- 24h 17min
Blog | Mais populares
As diferenças de var, let e const
Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação A popularidade da automação de processos com o n8n está em alta, principalmente […]
