Comment interrompre l'exécution D'un script Python? [dupliquer]
possibilité de dupliquer:
terminer 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 suis à la recherche de quelque chose qui se comporte de manière équivalente au mot-clé 'retour' dans le corps d'une fonction qui permet le flux du code pour quitter la fonction et ne pas exécuter le code restant.
8 réponses
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)
sort avec zéro, ce qui est généralement interprété comme un succès. Les codes autres que zéro sont généralement traités comme des erreurs. La valeur par défaut est de sortie à zéro.
import sys
sys.exit("aa! errors!")
Imprime "aa! les erreurs!"et sorties avec un code d'état de 1.
Il y a aussi une fonction _exit() dans le module os. Le sys.la fonction exit() soulève une exception SystemExit pour quitter le programme, alors essayez les instructions et le code de nettoyage peut s'exécuter. OS._exit() version ne fait pas cela. Il termine simplement le programme sans faire de nettoyage ou de vidange des tampons de sortie, de sorte qu'il ne devrait pas normalement être utilisé.
le Python docs indique que os._exit () est la manière normale de mettre fin à un processus enfant créé avec un appel à os.fork(), de sorte qu'il n'ont une utilisation dans certaines circonstances.
vous pourriez mettre le corps de votre script dans une fonction et ensuite vous pourriez 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 utiliser:
import sys
sys.exit(...)
ou:
raise SystemExit(...)
le paramètre optionnel peut être un code de sortie ou un message d'erreur. Les deux méthodes sont identiques. Je préfère sys.exit, mais je suis récemment passé à la levée SystemExit, parce qu'il semble se démarquer mieux parmi le reste du code (en raison de la relance mot-clé).
si le programme entier doit arrêter d'utiliser sys.exit () sinon utilisez simplement un retour vide.
Essayer
sys.exit("message")
c'est comme le perl
die("message")
si c'est ce que vous cherchez. Il termine l'exécution du script même s'il est appelé à partir d'un module / def /function importé