How to save a Python interactive session?
IPython is extremely useful if you like using interactive sessions. For example for your use-case there is the
%save magic command, you just input
%save my_useful_session 10-20 23 to save input lines 10 to 20 and 23 to
my_useful_session.py (to help with this, every line is prefixed by its number).
Furthermore, the documentation states:
This function uses the same syntax as %history for input ranges, then saves the lines to the filename you specify.
This allows for example, to reference older sessions, such as
%save current_session ~0/%save previous_session ~1/
Look at the videos on the presentation page to get a quick overview of the features.
There is a way to do it. Store the file in
# Add auto-completion and a stored history file of commands to your Python# interactive interpreter. Requires Python 2.0+, readline. Autocomplete is# bound to the Esc key by default (you can change it - see readline docs).## Store the file in ~/.pystartup, and set an environment variable to point# to it: "export PYTHONSTARTUP=/home/user/.pystartup" in bash.## Note that PYTHONSTARTUP does *not* expand "~", so you have to put in the# full path to your home directory.import atexitimport osimport readlineimport rlcompleterhistoryPath = os.path.expanduser("~/.pyhistory")def save_history(historyPath=historyPath): import readline readline.write_history_file(historyPath)if os.path.exists(historyPath): readline.read_history_file(historyPath)atexit.register(save_history)del os, atexit, readline, rlcompleter, save_history, historyPath
and then set the environment variable
PYTHONSTARTUP in your shell (e.g. in
You can also add this to get autocomplete for free:
Please note that this will only work on *nix systems. As readline is only available in Unix platform.