Question

  

Double possible:
   Fin d'un script Python

J'ai un script Python simple que je veux arrêter d'exécuter si une condition est remplie.

Par exemple:

done = True
if done:
    # quit/stop/exit
else:
    # do other stuff

Essentiellement, je recherche quelque chose qui se comporte de manière équivalente au mot clé "return" dans le corps d'une fonction, ce qui permet au flux de code de quitter la fonction sans exécuter le code restant.

Était-ce utile?

La solution

Pour quitter un script que vous pouvez utiliser,

import sys
sys.exit()

Vous pouvez également fournir une valeur de statut de sortie, généralement un entier.

import sys
sys.exit(0)

Sorties avec zéro, ce qui est généralement interprété comme un succès. Les codes non nuls sont généralement traités comme des erreurs. La valeur par défaut est de quitter avec zéro.

import sys
sys.exit("aa! errors!")

Imprime & aa; aa! erreurs! " et quitte avec un code d’état de 1.

Il existe également une fonction _exit () dans le module os. La fonction sys.exit () déclenche une exception SystemExit pour quitter le programme, essayez donc les instructions et le code de nettoyage peuvent être exécutés. La version os._exit () ne le fait pas. Il termine simplement le programme sans nettoyage ni vidage des tampons de sortie, il ne devrait donc normalement pas être utilisé.

Les documents Python indiquent que os._exit () est le moyen normal de mettre fin à un processus enfant créé avec un appel à os.fork (). Il est donc utile dans certaines circonstances.

Autres conseils

import sys
sys.exit()

Vous pouvez placer le corps de votre script dans une fonction, puis revenir de cette fonction.

def main():
  done = True
  if done:
    return
    # quit/stop/exit
  else:
    # do other stuff

if __name__ == "__main__":
  #Run as main program
  main()

Vous pouvez soit utiliser:

import sys
sys.exit(...)

ou:

raise SystemExit(...)

Le paramètre facultatif peut être un code de sortie ou un message d'erreur. Les deux méthodes sont identiques. Auparavant, je préférais sys.exit, mais je suis récemment passé à la levée de soulager SystemExit, car il semble mieux se démarquer parmi le reste du code (en raison du mot clé raise ).

exit () devrait faire l'affaire

exit () devrait le faire.

Essayez

sys.exit("message")

C'est comme le perl

die("message")

si c'est ce que vous recherchez. Il termine l'exécution du script même s'il est appelé depuis un module importé / def / function

Si l'ensemble du programme doit cesser d'utiliser sys.exit (), utilisez simplement un retour vide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top