2009-02-12 9 views

Répondre

234

sys.exit() va faire exactement ce que vous voulez.

import sys 
sys.exit("Error message") 
22

Vous voulez sys.exit(). A partir de docs Python:

>>> import sys 
>>> print sys.exit.__doc__ 
exit([status]) 

Exit the interpreter by raising SystemExit(status). 
If the status is omitted or None, it defaults to zero (i.e., success). 
If the status is numeric, it will be used as the system exit status. 
If it is another kind of object, it will be printed and the system 
exit status will be one (i.e., failure). 

Donc, en gros, vous allez faire quelque chose comme ceci:

from sys import exit 

# Code! 

exit(0) # Successful exit 
+1

Découvrez pourquoi la simple sortie() fonctionne sans importer: http://docs.python.org/library/constants.html – George

+6

@gdivos, pour citer cette même page: "Ils sont utiles pour l'interactif interpréteur shell et ne doit pas être utilisé dans les programmes. " – hop

67

Vous pourriez raise SystemExit(0) au lieu d'aller à tous la peine de import sys; sys.exit(0).

+0

Pourquoi cette réponse n'est-elle pas acceptée? Y a-t-il une raison de préférer le système d'importation? sys.exit (0) '? – pela

10

Les fonctions intégrées exit() et quit() font exactement ce que vous voulez. Aucune importation de sys nécessaire.

Alternativement, vous pouvez augmenter SystemExit, mais vous devez faire attention à ne pas l'attraper n'importe où (ce qui ne devrait pas arriver tant que vous spécifiez le type d'exception dans tous vos blocs try ..).

+17

La référence de la bibliothèque Python indique explicitement que ces fonctions ne doivent être utilisées que dans l'interpréteur interactif et * not * dans les programmes. – alldayremix

+4

Ne fonctionne pas dans les scripts. – ZuLu

+0

Cela fonctionne au moins dans la version 2.7.5 pour l'exécution d'un fichier python. – Ralf

Questions connexes