pythoncommand-linescriptingexitexecfile

Exit to command line in Python


I have a script that I want to exit early under some condition:

if not "id" in dir():
     print "id not set, cannot continue"
     # exit here!
# otherwise continue with the rest of the script...
print "alright..."
[ more code ]

I run this script using execfile("foo.py") from the Python interactive prompt and I would like the script to exit going back to interactive interpreter. How do I do this? If I use sys.exit(), the Python interpreter exits completely.


Solution

  • Put your code block in a method and return from that method, like such:

    def do_the_thing():
        if not "id" in dir():
             print "id not set, cannot continue"
             return
             # exit here!
        # otherwise continue with the rest of the script...
        print "alright..."
        # [ more code ]
    
    # Call the method
    do_the_thing()
    

    Also, unless there is a good reason to use execfile(), this method should probably be put in a module, where it can be called from another Python script by importing it:

    import mymodule
    mymodule.do_the_thing()