[Tutor] How to "refresh" the interactive prompt?
Steven D'Aprano
steve at pearwood.info
Sun Oct 2 10:47:17 CEST 2011
Richard D. Moores wrote:
> Python 3.2.2, Win 7
>
> When using the Python 3 interactive prompt, is there a way to quickly
> "refresh" the prompt? By "refresh" I mean get a new interactive prompt
> with nothing imported and all things like a = "qwerty", n = 123,
> etc. no longer in effect. Not sure what the wording should be for
> that. "imports cancelled and variables deleted"?
That would be "start a fresh interpreter session".
And the easiest way to start a fresh interpreter session is, indeed, to
exit the current session and start a fresh one, just as you describe.
> I know I can do that by entering a Ctrl+z, followed by entering
> "python". But could print() be used to do the same thing? I can get a
> beep with print("\a"), or clear the screen with import os;
> print(os.system("CLS"),chr(13)," ",chr(13)), but how to print a ^Z?
Printing a ^Z is easy, you just have to know what character code ^Z
corresponds to. That's chr(26) or 1A in hexadecimal, so this works:
>>> print('\x1A')
▒
But as you can see, that just prints a character.
You need to get Ctrl-Z into the *input* stream, not the *output* stream,
to exit the interpreter. If you are doing it manually, the easiest way
is just to type Ctrl-Z. If doing it programmatically, use either of these:
sys.exit()
raise SystemExit
There is no easy way to reset the current interpreter session to "as
new". I suppose you could try something like this:
sys.modules[:] = []
globals().clear()
but that won't necessarily reset everything to a fresh state.
--
Steven
More information about the Tutor
mailing list