sys.exit() not working in python repl?
richardnicholas

Hi all, I am not sure if this is a problem with repl.it or I am just coding the python wrong. My simple code to open a file is:

try:
file_in = open ('data_file', 'r')
except:
print ("Could not open data_file for reading.")
sys.exit(1)
print ("Why doesn't this exit work?")

All is well if data_file exists but if not, we go to the except where it does a print and should exit. But the program hangs there until I press Stop. The 2nd print statement does not occur either so it looks like it goes into exit() but does not come out?

Ideas? Thanks.

Edit to original question: I see the whitespace indentation got lost when I submitted the question but it is correct in the real code.

You are viewing a single comment. View All
timmy_i_chen

For future reference, you can paste a repl link here for easy reproduction ;)

sys.exit() is working, but the termination message probably isn't sent to the repl. This works in project mode (if you add another .py to take it out of eval mode):

https://repl.it/@timmy_i_chen/sys-exit

richardnicholas

@timmy_i_chen Thanks for the reply. I don't really understand why repl makes this distinction between "eval mode" and "project mode" and basing that on having 1 file or more than 1 file? And furthermore, you have limited capabilities unless you add a 2nd file? This seems like a bad idea... :-) Because now if I want exit() to get me back to the repl command prompt I have to add a 2nd file that I don't need in this case?

timmy_i_chen

@richardnicholas Eval mode and Project mode both have their drawbacks and benefits, detailed here: http://repl.it/site/docs/files

In this particular case, it should actually say "Repl died unexpectedly" or something similar - but we need to look into this to see what has regressed.