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.

parar a execução de um script em Python capa

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
Formação Recomendada

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

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação SAAS com IA

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