Arrêter l'exécution d'un script appelé avec execfile
Est-il possible d'interrompre l'exécution d'un script Python appelé avec le execfile fonctionner sans l'aide d'un if/else? J'ai essayé exit()
mais il ne permet pas main.py
à la fin.
# main.py
print "Main starting"
execfile("script.py")
print "This should print"
# script.py
print "Script starting"
a = False
if a == False:
# Sanity checks. Script should break here
# <insert magic command>
# I'd prefer not to put an "else" here and have to indent the rest of the code
print "this should not print"
# lots of lines below
source d'informationauteur JcMaco
Vous devez vous connecter pour publier un commentaire.
main
pouvez envelopper leexecfile
dans untry
/except
bloc:sys.exit
soulève un SystemExit exception quimain
peut attraper dans leexcept
clause afin de poursuivre son exécution normalement, si vous le souhaitez. I. e., dansmain.py
:et
whatever.py
pouvez utilisersys.exit(0)
ou que ce soit pour mettre fin à son propre d'exécution seulement. Toute autre exception fonctionnera aussi bien, tant que c'est convenu entre la source àexecfile
d et la source de faire leexecfile
appel -- maisSystemExit
est particulièrement adapté car son sens est assez clair!Je trouve cet aspect de Python (le
__name__
=="__main__
", etc.) irritant.Quel est le problème par le bon vieux la gestion des exceptions?
scriptexit.py
main.py
script.py