Duplicate possible:
Terminaison d'un script Python
J'ai un simple script Python 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.
Pour quitter un script, 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! Erreurs!" et sort avec un code de statut 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. Les instructions try et le code de nettoyage peuvent donc être exécutés. La version os._exit () ne le fait pas. Cela met simplement fin au 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 habituel de terminer un processus enfant créé avec un appel à os.fork (). Il est donc utile dans certaines circonstances.
import sys
sys.exit()
Vous pouvez mettre 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 __== "__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. J'avais l'habitude de préférer sys.exit, mais je suis récemment passé à la levée de SystemExit, car il semble mieux ressortir du reste du code (en raison du mot clé raise).
exit () devrait faire l'affaire
Essayer
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
exit () devrait le faire.
Si le programme entier doit cesser d'utiliser sys.exit (), utilisez simplement un retour vide.