Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Run from and save to .py file from Jupyter Notebook

On my old computer, I was able to run .py files from Jupyter Notebook, edit them, and run them. The .py file was effectively a notebook file for all intents and purposes. I updated to the latest version of notebook, and I am no longer able to do this. How do I use .py files on my notebook?

I know there are roundabout ways to do this. I am looking for the method where, when you are in notebook, instead of opening a .ipynb file, you select a .py file which is opened, and behaves like a .ipnyb. When you save it, it writes to .py.

like image 257
David Kong Avatar asked Sep 15 '19 18:09

David Kong


People also ask

How do I export my Jupyter notebook to py?

Open the jupyter notebook that you want to convert. Navigate into the 'File' menu and select 'Download as'. The more options will be displayed in the form of a list where you will click on the 'Python (. py)' option.

How do I save as a .py file?

Saving your workRight-click the Python window and select Save As to save your code either as a Python file (. py) or Text file (. txt). If saving to a Python file, only the Python code will be saved.

Can I run .py file in Jupyter notebook directly?

py file from jupyter? Some simple options: Open a terminal in Jupyter, run your Python scripts in the terminal like you would in your local terminal. Make a notebook, and use %run <name of script.py> as an entry in a cell.

How do I export code from Jupyter notebook?

The Jupyter Notebook has an option to export the notebook to many formats. It can be accessed by clicking File -> Download as -> PDF via LaTeX (or PDF via HTML - not visible in the screenshot). This approach requires you to install some additional packages.


2 Answers

A text file can be loaded in a notebook cell with the magic command %load.

If you execute a cell containing:

%loadpy 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.

To see the help for any magic command add a ?: like %loadpy? or %%writefile?.
%COMMAND-NAME?
i.e. %run?

For list of available magic function use %lsmagic. Alternatively there is also another method magic function called %save-f but I would not recommend that, it's an indirect way of saving files.

Also see -
1. Magic Functions docs
2.this nbviewer for further explanation with examples.

Hope this helps.

like image 192
Rishit Dagli Avatar answered Oct 02 '22 15:10

Rishit Dagli


This is not the exact answer. At one point, I was able to open .py files using python notebook and work on it as if it were a notebook file.

However, I have been able to replicate this behavior using VScode.

https://code.visualstudio.com/docs/python/jupyter-support-py

Using VScode, you can export all your .ipynb files into .py files, then run code blocks. Code blocks are separated by # %%.

I have not used it sufficiently long enough to decide if it is better than python notebook, but this seems to be the best solution so far. I previously tried using Atom/Hydrogen and did not enjoy the experience.

like image 41
David Kong Avatar answered Oct 02 '22 16:10

David Kong