How to load/edit/run/save text files (.py) into an IPython notebook cell?
I have found it satisfactory to use ls and cd within ipython notebook to find the file. Then type cat your_file_name into the cell, and you'll get back the contents of the file, which you can then paste into the cell as code.
To write/save
%%writefile myfile.py
- write/save cell contents into myfile.py (use
-a
to append). Another alias:%%file myfile.py
To run
%run myfile.py
- run myfile.py and output results in the current cell
To load/import
%load myfile.py
- load "import" myfile.py into the current cell
For more magic and help
%lsmagic
- list all the other cool cell magic commands.
%COMMAND-NAME?
- for help on how to use a certain command. i.e.
%run?
Note
Beside the cell magic commands, IPython notebook (now Jupyter notebook) is so cool that it allows you to use any unix command right from the cell (this is also equivalent to using the %%bash
cell magic command).
To run a unix command from the cell, just precede your command with !
mark. for example:
!python --version
see your python version!python myfile.py
run myfile.py and output results in the current cell, just like%run
(see the difference between!python
and%run
in the comments below).
Also, see this nbviewer for further explanation with examples. Hope this helps.
Drag and drop a Python file in the Ipython notebooks "home" notebooks table, click upload. This will create a new notebook with only one cell containing your .py file content
Else copy/paste from your favorite editor ;)
EDIT: Starting from IPython 3 (now Jupyter project), the notebook has a text editor that can be used as a more convenient alternative to load/edit/save text files.
A text file can be loaded in a notebook cell with the magic command %load
.
If you execute a cell containing:
%load filename.py
the content of filename.py
will be loaded in the next cell. You can edit and execute it as usual.
To save the cell content back into a file add the cell-magic %%writefile filename.py
at the beginning of the cell and run it. Beware that if a file with the same name already exists it will be silently overwritten.
To see the help for any magic command add a ?
: like %load?
or %%writefile?
.
For general help on magic functions type "%magic" For a list of the available magic functions, use %lsmagic. For a description of any of them, type %magic_name?, e.g. '%cd?'.
See also: Magic functions from the official IPython docs.