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.

121
demandé sur Community 2008-10-07 20:46:36

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.

211
répondu ryan_s 2008-10-08 02:54:00
import sys
sys.exit()
18
répondu gimel 2008-10-07 16:49:25

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()
16
répondu David Locke 2008-10-07 17:27:23

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é).

12
répondu efotinis 2008-10-07 18:11:22

exit() devrait faire l'affaire

4
répondu Sec 2008-10-07 16:48:19

exit() devrait le faire.

3
répondu Dana 2008-10-07 16:48:22

si le programme entier doit arrêter d'utiliser sys.exit () sinon utilisez simplement un retour vide.

2
répondu André 2008-10-07 16:49:15

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é

1
répondu GabrieleV 2010-01-26 11:26:27